【问题标题】:How do I split the input for a mxnet neural network?如何拆分 mxnet 神经网络的输入?
【发布时间】:2017-08-04 03:29:10
【问题描述】:

我正在制作一个连接架构不太明显的神经网络。我归结为 4 个输入块,每个输入块都有自己通往最终输出层的路径,并在几个步骤之间将它们合并。 我在 R 上使用 mxnet。我定义了 4 个mx.symbol.Variable("data"),每个都是输入“块”的输入。图表上仅显示 1 (graph.viz(out))。我可以理解,我应该只提供 1 个大输入向量是有道理的。但是...如何拆分该输入向量? (哦,可以肯定的是,mxnet 中的lstm 中的state.size 指向内存块的数量,等于# 输入和输出,对吧?)

代码(最小示例):

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 个? (in1in2 似乎效果不佳)

-- 编辑 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 个输入,但不是作为输入(绿色圆圈),而是作为实际层(粉红色矩形)。这似乎对我没有帮助...

【问题讨论】:

    标签: mxnet


    【解决方案1】:

    将第一行改为:

    input <- mx.symbol.Variable("data")
    
    in1 <- mx.symbol.slice(input, begin=0, end=6)
    in2 <- mx.symbol.slice(input, begin=7, end=13)
    

    而不是添加而是使用concat

    l2 <- mx.symbol.concat(c(l1.1, 1.2), num.args=14)
    l2 <- mx.symbol.RNN(data=l2, name="lstml2", mode="lstm", num.layers=1, state.size=14)  # state.size must be 14, since each input separate has 7
    

    好像还可以

    【讨论】:

      猜你喜欢
      • 2012-10-05
      • 2017-09-25
      • 2010-10-13
      • 2020-06-25
      • 2017-12-25
      • 1970-01-01
      • 2020-08-10
      • 2020-12-28
      相关资源
      最近更新 更多