

Deep learningのChainerを使ってDeeplearningの勉強をしています。  
その過程で、２つのデータを組み合わせることをやりたいのですが、やり方がわかりません。

具体的には、

[code]

    def forward(x1,x2):
        h1 = F.relu(model.l1(x1))
        h2 = F.relu(model.l2(x2))
    
        h = F.relu(model.l3(???))
    
[/code]

Model1とModel2のデータを合成し（[x1 x2]のように２つのベクトルを縦に並べた長いベクトルを作る）、Model3に入れたいと考えています。

Chainerの変数はVariableを使っており通常のNumpyの vstack、hstack
が使えません。どうすればいいかわからなかったため、教えていただけないでしょうか。


CC BY-SA 3.0
2016-11-12T03:33:35.763
30337
2016-11-12T10:29:54.177
2016-11-12T08:28:34.523
18862
19533
question
python 深層学習 chainer ニューラルネットワーク
Chainerでネットワークの途中でのデータの合成方法は？


`chainer.functions.concat`を使って下さい。引数`axis`でどの次元でconcatするかを指定できます。以下のサンプルを参考にしてみて下さい。

[code]

    In [2]: x1 = chainer.Variable(numpy.array([[1, 2], [3, 4]]))
    
    In [3]: x2 = chainer.Variable(numpy.array([[5, 6], [7, 8]]))
    
    In [4]: x1.data
    Out[4]: 
    array([[1, 2],
           [3, 4]])
    
    In [5]: x2.data
    Out[5]: 
    array([[5, 6],
          [7, 8]])
    
    In [6]: chainer.functions.concat([x1, x2], axis=1).data
    Out[6]: 
    array([[1, 2, 5, 6],
           [3, 4, 7, 8]])
    
[/code]


CC BY-SA 3.0
2016-11-12T10:29:54.177
30345
2016-11-12T10:29:54.177
14418
30337
answer