モデルの概要

概要では、レイヤーのタイプや形状など、モデルのアーキテクチャに関する詳細が提供されます。

デザイン提案書はここからご覧いただけます。この実装は WIP であるため、確認したい機能強化や発生した問題については、問題を提出してください。

モデルの概要の表示

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)

入力テンソルを作成します。

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

モデルの概要を生成します。

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]