@frozen
public struct Conv3D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
Lớp tích chập 3-D để tích chập không gian/không gian-thời 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 5-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, 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 các chiều không gian/thời gian.
Tuyên ngôn
@noDerivative public let dilations: (Int, Int, Int)
Tạo lớp
Conv3D
với bộ lọc, độ lệch, chức năng kích hoạt, bước tiế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, Int) = (1, 1, 1), padding: Padding = .valid, dilations: (Int, Int, Int) = (1, 1, 1) )
Thông số
filter
Bộ lọc tích chập 5-D có hình dạng [độ sâu bộ lọc, 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
Chức năng 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à (độ sâu bước, 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 chiều không gian/không gian-thời gian.
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:
độ sâu đầu ra = (độ sâu đầu vào + 2 * độ sâu đệm - (độ sâu giãn nở * (độ sâu bộ lọc - 1) + 1)) / độ sâu sải chân + 1
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 [số lô, độ sâu đầu vào, 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ô, độ sâu đầu ra, chiều cao đầu ra, chiều rộng đầu ra, số kênh đầu ra].
Tạo lớp
Conv3D
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. Tenxor bộ lọc được khởi tạo bằng cách sử dụng khởi tạo thống nhất Glorot với hạt giống được chỉ định. Vectơ thiên vị được khởi tạo bằng số không.Tuyên ngôn
public init( filterShape: (Int, Int, Int, Int, Int), strides: (Int, Int, Int) = (1, 1, 1), padding: Padding = .valid, dilations: (Int, Int, Int) = (1, 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 5-D, biểu thị (độ sâu bộ lọc, 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à (độ sâu bước, 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 chiều không gian/không gian-thời gian.
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.