Resumos do modelo

Um resumo fornece detalhes sobre a arquitetura de um modelo, como tipos e formas de camadas.

A proposta de design pode ser encontrada aqui . Esta implementação é um WIP, portanto, registre um problema com as melhorias que você gostaria de ver ou os problemas que encontrar.

Visualizando um resumo do modelo

Crie um dispositivo e 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)

Crie um tensor de entrada.

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

Gere um resumo do seu 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]