烤宽面条中的目标值形状

时间:2016-06-27 23:49:01

标签: neural-network theano lasagne

我正在尝试以100个批次训练暹罗烤宽面条模型。 输入是X1(100x3x100x100)和X2(相同大小)和Y(100x1),我的最后一层是一个输出维度的密集层,因为我期望值为0或1作为目标值。但是,它为意外维度引发了错误。以下是代码摘录:

input1 = lasagne.layers.InputLayer(shape=(None,3, 100, 100), input_var=None)
conv1_a = lasagne.layers.Conv2DLayer(input1, 
                                num_filters=24, 
                                filter_size=(7, 7),
                                nonlinearity=lasagne.nonlinearities.rectify)

pool1_a = lasagne.layers.MaxPool2DLayer(conv1_a, pool_size=(3, 3), stride=2)

第2层与上述相同。 输出层:

dense_b = lasagne.layers.DenseLayer(dense_a,
                                num_units=128,
                                nonlinearity=lasagne.nonlinearities.rectify)
dense_c = lasagne.layers.DenseLayer(dense_b,
                                num_units=1,
                                nonlinearity=lasagne.nonlinearities.softmax)

net_output = lasagne.layers.get_output(dense_c)
true_output = T.ivector('true_output')

培训代码如下:

loss_value = train(X1_train,X2_train,Y_train.astype(np.int32))
print loss_value
  

ValueError:输入维度不匹配。 (输入[0] .shape [1] = 100,   input [1] .shape [1] = 1)应用导致错误的节点:   Elemwise {Composite {((i0 * i1)+(i2 *   log1p(( - i3))))}}(InplaceDimShuffle {x,0} .0,LogSoftmax.0,   Elemwise {sub,no_inplace} .0,SoftmaxWithBias.0)Toposort index:113   输入类型:[TensorType(int32,row),TensorType(float32,matrix),   TensorType(float64,row),TensorType(float32,matrix)]输入形状:   [(1,100),(100,1),(1,100),(100,1)]输入步幅:[(400,4),   (4,4),(800,8),(4,4)]输入值:['未显示','未显示',   'not shown','not shown']输出客户:   [[Sum {acc_dtype = float64}(Elemwise {Composite {((i0 * i1)+(i2 * *   log1p。(( - I 3))))}} 0)]]

1 个答案:

答案 0 :(得分:0)

尝试使用draw_net.py,如下所示:

import draw_net
dot = draw_net.get_pydot_graph(lasagne.layers.get_all_layers(your_last_layer), 
verbose = True)

dot.write("test.pdf", format="pdf")

以pdf格式转储烤宽面条图形(需要安装graphviz)

相关问题