@frozen
public struct Conv2D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
Lớp tích chập 2-D (ví dụ: tích chập không gian trên hình ảnh).
Lớp này tạo ra một bộ lọc tích chập được tích hợp với đầu vào của lớp để tạo ra một tensor đầu ra.
Bộ lọc tích chập 4-D.
Tuyên ngôn
public var filter: Tensor<Scalar>
Vectơ thiên vị.
Tuyên ngôn
public var bias: Tensor<Scalar>
Chức năng kích hoạt theo phần tử.
Tuyên ngôn
@noDerivative public let activation: Activation
Những bước tiến của cửa sổ trượt cho các kích thước không gian.
Tuyên ngôn
@noDerivative public let strides: (Int, Int)
Thuật toán đệm cho tích chập.
Tuyên ngôn
@noDerivative public let padding: Padding
Hệ số giãn nở cho kích thước không gian.
Tuyên ngôn
@noDerivative public let dilations: (Int, Int)
Tạo lớp
Conv2D
với bộ lọc, độ lệch, chức năng kích hoạt, bước tiến, độ giãn và phần đệm được chỉ định.Tuyên ngôn
public init( filter: Tensor<Scalar>, bias: Tensor<Scalar>? = nil, activation: @escaping Activation = identity, strides: (Int, Int) = (1, 1), padding: Padding = .valid, dilations: (Int, Int) = (1, 1) )
Thông số
filter
Bộ lọc tích chập 4-D có hình dạng [chiều cao bộ lọc, chiều rộng bộ lọc, số kênh đầu vào, số lượng kênh đầu ra].
bias
Vectơ thiên vị của hình dạng [số kênh đầu ra].
activation
Hàm kích hoạt theo phần tử.
strides
Các bước của cửa sổ trượt cho các kích thước không gian, tức là (chiều cao bước, chiều rộng bước).
padding
Thuật toán đệm cho tích chập.
dilations
Hệ số giãn nở cho các kích thước không gian, tức là (chiều cao giãn nở, chiều rộng giãn nở).
Trả về kết quả thu được từ việc áp dụng lớp cho đầu vào đã cho.
Kích thước không gian đầu ra được tính như sau:
chiều cao đầu ra = (chiều cao đầu vào + 2 * chiều cao đệm - (chiều cao giãn nở * (chiều cao bộ lọc - 1) + 1)) / chiều cao sải chân + 1
chiều rộng đầu ra = (chiều rộng đầu vào + 2 * chiều rộng đệm - (chiều rộng giãn nở * (chiều rộng bộ lọc - 1) + 1)) / chiều rộng sải chân + 1
và kích thước phần đệm được xác định bởi sơ đồ phần đệm.
Ghi chú
Kích thước đệm bằng 0 khi sử dụng
.valid
.Thông số
input
Đầu vào của lớp hình dạng [kích thước lô, chiều cao đầu vào, chiều rộng đầu vào, số lượng kênh đầu vào].
Giá trị trả về
Đầu ra của hình dạng [số lô, chiều cao đầu ra, chiều rộng đầu ra, số kênh đầu ra].
Tạo lớp
Conv2D
với hình dạng bộ lọc, bước tiến, phần đệm, độ giãn nở và chức năng kích hoạt theo phần tử được chỉ định.Tuyên ngôn
public init( filterShape: (Int, Int, Int, Int), strides: (Int, Int) = (1, 1), padding: Padding = .valid, dilations: (Int, Int) = (1, 1), activation: @escaping Activation = identity, useBias: Bool = true, filterInitializer: ParameterInitializer<Scalar> = glorotUniform(), biasInitializer: ParameterInitializer<Scalar> = zeros() )
Thông số
filterShape
Hình dạng của bộ lọc tích chập 4-D, biểu thị (chiều cao bộ lọc, chiều rộng bộ lọc, số kênh đầu vào, số lượng kênh đầu ra).
strides
Các bước của cửa sổ trượt cho các kích thước không gian, tức là (chiều cao bước, chiều rộng bước).
padding
Thuật toán đệm cho tích chập.
dilations
Các hệ số giãn nở cho các kích thước không gian, tức là (chiều cao giãn nở, chiều rộng giãn nở).
activation
Chức năng kích hoạt theo phần tử.
filterInitializer
Trình khởi tạo để sử dụng cho các tham số bộ lọc.
biasInitializer
Trình khởi tạo để sử dụng cho các tham số sai lệch.