该模型在优化步骤之前运行良好。但是,当我想优化我的模型时,出现错误消息:
op输入和计算输入渐变之间的形状不兼容。 正向操作:softmax_cross_entropy_with_logits_sg_12。输入 index:0。原始输入形状:(16,1)。计算输入梯度 形状:(16,16)
以下是我的代码。
logsoftmax
答案 0 :(得分:1)
纠正以下事项。
首先,
将占位符输入形状更改为此
X = tf.placeholder(tf.int32, shape=[None,400]
Y = tf.placeholder(tf.float32, shape=[None,1]
为什么无因为这可以让您自由地喂食任何尺寸。这是首选,因为虽然训练时你想使用迷你批次,但在预测或推理时间,你通常会提供单一的东西。标记没有,照顾好。
第二,
纠正您的体重初始化,您正在喂食随机值,它们也可能是负面的。始终建议初始化为略微正值。 (我看到你正在使用relu作为激活,负梯度值的渐变为零,所以这些权重永远不会在渐变下降中更新,换句话说那些是无用的权重)
第三,
Logits是您从W2*x + b2
获得的结果。 tf.nn.softmax_cross.....(..)
自动应用softmax激活。所以最后一层不需要SeLu。