Resúmenes de modelos

Un resumen proporciona detalles sobre la arquitectura de un modelo, como tipos de capas y formas.

La propuesta de diseño se puede encontrar aquí . Esta implementación es un WIP, por lo tanto, presente un problema con las mejoras que le gustaría ver o los problemas con los que se encuentra.

Ver un resumen de modelo

Cree un dispositivo y modelo X10.

import TensorFlow

public struct MyModel: Layer {
  public var dense1 = Dense<Float>(inputSize: 1, outputSize: 1)
  public var dense2 = Dense<Float>(inputSize: 4, outputSize: 4)
  public var dense3 = Dense<Float>(inputSize: 4, outputSize: 4)
  public var flatten = Flatten<Float>()

  @differentiable
  public func callAsFunction(_ input: Tensor<Float>) -> Tensor<Float> {
    let layer1 = dense1(input)
    let layer2 = layer1.reshaped(to: [1, 4])
    let layer3 = dense2(layer2)
    let layer4 = dense3(layer3)
    return flatten(layer4)
  }
}

let device = Device.defaultXLA
let model0 = MyModel()
let model = MyModel(copying: model0, to: device)

Crea un tensor de entrada.

let input = Tensor<Float>(repeating: 1, shape: [1, 4, 1, 1], on: device)

Genere un resumen de su modelo.

let summary = model.summary(input: input)
print(summary)
Layer                           Output Shape         Attributes
=============================== ==================== ======================
Dense<Float>                    [1, 4, 1, 1]
Dense<Float>                    [1, 4]
Dense<Float>                    [1, 4]
Flatten<Float>                  [1, 4]