Torch7はnnに用意されている部品を組み合わせることで複雑なモデルを作れて便利なのですが、複雑なモデルは入力ベクトル(orテンソル)を様々形に変換しながら実行するので、どの時点でどのサイズになっているか分からなくて書くのが難しいというのがあります。 たとえば、伝統的なCNNは、Torch7で以下のように書くのですが require 'nn' function cnn_model() local model = nn.Sequential() -- convolution layers model:add(nn.SpatialConvolutionMM(3, 128, 5, 5, 1, 1)) model:add(nn.ReLU()) model:add(nn.SpatialMaxPooling(2, 2, 2, 2)) model:add(nn.SpatialConvolutionMM