@frozen
public struct Dense<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
Lapisan jaringan saraf yang terhubung erat.
Dense
mengimplementasikan operasi activation(matmul(input, weight) + bias)
, di mana weight
adalah matriks bobot, bias
adalah vektor bias, dan activation
adalah fungsi aktivasi berdasarkan elemen.
Lapisan ini juga mendukung tensor bobot 3-D dengan matriks bias 2-D. Dalam hal ini dimensi pertama dari keduanya diperlakukan sebagai ukuran batch yang selaras dengan dimensi input
pertama dan varian batch dari operasi matmul(_:_:)
digunakan, sehingga menggunakan bobot dan bias yang berbeda untuk setiap elemen dalam kumpulan masukan.
Matriks bobot.
Pernyataan
public var weight: Tensor<Scalar>
Vektor bias.
Pernyataan
public var bias: Tensor<Scalar>
Fungsi aktivasi berdasarkan elemen.
Pernyataan
@noDerivative public let activation: Activation
Membuat instance dari bobot tertentu, bias opsional, dan fungsi aktivasi.
Catatan
saat ini,weight
adalah satu-satunya parameter diferensiasi.bias
dapat dijadikan parameter diferensiasi setelahOptional
secara kondisional sesuai denganDifferentiable
: TF-499.Pernyataan
@differentiable(wrt: weight) public init( weight: Tensor<Scalar>, bias: Tensor<Scalar>? = nil, activation: @escaping Activation )
Membuat lapisan
Dense
dengan ukuran masukan, ukuran keluaran, dan fungsi aktivasi berdasarkan elemen yang ditentukan. Matriks bobot dibuat dengan bentuk[inputSize, outputSize]
dan vektor bias dibuat dengan bentuk[outputSize]
.Pernyataan
public init( inputSize: Int, outputSize: Int, activation: @escaping Activation = identity, useBias: Bool = true, weightInitializer: ParameterInitializer<Scalar> = glorotUniform(), biasInitializer: ParameterInitializer<Scalar> = zeros() )
Parameter
inputSize
Dimensi ruang masukan.
outputSize
Dimensi ruang keluaran.
activation
Fungsi aktivasi yang akan digunakan. Nilai defaultnya adalah
identity(_:)
.weightInitializer
Inisialisasi yang akan digunakan untuk
weight
.biasInitializer
Inisialisasi yang akan digunakan untuk
bias
.