我正在製作一個不太明顯的連接體系結構的神經網絡。我歸結爲4塊輸入,每塊輸入都有自己的路徑,將它們合併成幾個步驟。 我在R上使用mxnet。我定義了4個mx.symbol.Variable("data")
,每個輸入都是輸入的「塊」。圖上只顯示1(graph.viz(out)
)。我可以理解,我應該只提供1個大的輸入向量。然而......我如何分割輸入向量? (哦,可以肯定,在mxnet一個lstm
的state.size
,它指向存儲塊,等於#輸入和輸出的數目,是嗎?)如何拆分mxnet神經網絡的輸入?
代碼(最小示例):
in1 <- mx.symbol.Variable("data1") # 7 values
in2 <- mx.symbol.Variable("data2") # 7 values
l1.1 <- mx.symbol.RNN(in1, name="lstm1.1", mode="lstm", num.layers=1, state.size=7) # first nn on the first 7 inputs
l1.2 <- mx.symbol.RNN(in2, name="lstm1.2", mode="lstm", num.layers=1, state.size=7) # second nn on the last 7 inputs
l2 <- mx.symbol.RNN(data=l1.1+l1.2, name="lstml2", mode="lstm", num.layers=1, state.size=14) # state.size must be 14, since each input separate has 7
out.dens <- mx.symbol.FullyConnected(c.lstm, name="out-dens", num.hidden=4) #
pred <- mx.symbol.LinearRegressionOutput(out, name="pred")
graph.viz(pred) # only lstm1.1 has a data input
所以問題是:如何提供2個輸入,或如何將1個輸入向量分成2個? (in1
和in2
似乎並沒有制定出精細)
- 編輯1
可以想象的是象徵性的變量前兩行 in1 <- mx.symbol.Variable("data") # 7 values in2 <- mx.symbol.Variable("data") # 7 values
的名稱應該是不同的。我很確定他們應該,更像是: in1 <- mx.symbol.Variable("data1") # 7 values in2 <- mx.symbol.Variable("data2") # 7 values
但是,改變它們並不會改變視覺計算圖。那麼,它確實:現在再次只顯示1個輸入,但不是輸入(綠色圓圈),而是作爲實際圖層(粉紅色矩形)。這似乎並沒有幫助我......