Padat

@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
  • Jenis fungsi aktivasi berdasarkan elemen.

    Pernyataan

    public typealias Activation = @differentiable (Tensor<Scalar>) -> Tensor<Scalar>
  • Membuat instance dari bobot tertentu, bias opsional, dan fungsi aktivasi.

    Catatan

    saat ini, weight adalah satu-satunya parameter diferensiasi. bias dapat dijadikan parameter diferensiasi setelah Optional secara kondisional sesuai dengan Differentiable : TF-499.

    Pernyataan

    @differentiable(wrt: weight)
    public init(
      weight: Tensor<Scalar>,
      bias: Tensor<Scalar>? = nil,
      activation: @escaping Activation
    )
  • Mengembalikan keluaran yang diperoleh dari penerapan lapisan ke masukan yang diberikan.

    Pernyataan

    @differentiable
    public func forward(_ input: Tensor<Scalar>) -> Tensor<Scalar>

    Parameter

    input

    Masukan ke lapisan.

    Nilai Pengembalian

    Outputnya.

  • 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 .