【问题标题】:tensorflow ValueError: Dimension 0 in both shapes must be equaltensorflow ValueError:两个形状中的维度 0 必须相等
【发布时间】:2019-09-03 17:44:49
【问题描述】:

我目前正在学习 TensorFlow。我正在尝试创建一个可以准确评估预测模型并为其分配分数的 NN。我现在的计划是结合现有程序的分数,通过 mlp 运行它们,同时将它们与真实值进行比较。我已经使用了 MNIST 数据,并且正在尝试将我学到的知识应用到我的项目中。不幸的是我有一个问题

def multilayer_perceptron(x, w1):
   # Hidden layer with RELU activation
   layer_1 = tf.matmul(x, w1)
   layer_1 = tf.nn.relu(layer_1)
   # Output layer with linear activation
   #out_layer = tf.matmul(layer_1, w2)
   return layer_1

def my_mlp (trainer, trainer_awn, learning_rate, training_epochs, n_hidden, n_input, n_output):
trX, trY= trainer, trainer_awn
#create placeholders
x = tf.placeholder(tf.float32, shape=[9517, 5])
y_ = tf.placeholder(tf.float32, shape=[9517, ])
#create initial weights
w1 = tf.Variable(tf.zeros([5, 1]))
#predicted class and loss function
y = multilayer_perceptron(x, w1)
cross_entropy = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(y, y_))
#training
train_step = tf.train.AdamOptimizer(learning_rate=learning_rate).minimize(cross_entropy)
correct_prediction = tf.equal(tf.argmax(y,1), tf.argmax(y_,1))
with tf.Session() as sess:
    # you need to initialize all variables
    sess.run(tf.initialize_all_variables())
    print("1")
    for i in range(training_epochs + 1):
        sess.run([train_step], feed_dict={x: [trX['V7'], trX['V8'], trX['V9'], trX['V10'], trX['V12']], y_: trY})
return 

代码给了我这个错误

ValueError: Dimension 0 in both shapes must be equal, but are 9517 and 1

运行 cross_entropy 的行时会发生此错误。我不明白为什么会这样,如果您需要更多信息,我很乐意提供给您。

【问题讨论】:

    标签: python tensorflow neural-network


    【解决方案1】:

    在您的情况下,y 的形状为 [9517, 1],而 y_ 的形状为 [9517]。它们不适合。请尝试使用 tf.reshape(y_, [-1, 1]) 重塑 y_

    【讨论】:

      【解决方案2】:

      这是由于 weights.hdf5 文件与存储库中的新数据不兼容造成的。我已经更新了 repo,它现在应该可以工作了。

      【讨论】:

      • 我很抱歉,但我有点困惑如何处理这个答案。那个文件是什么,你在说什么回购?我看不出这个问题和这个答案之间有任何联系。
      猜你喜欢
      • 1970-01-01
      • 2020-09-20
      • 2021-02-02
      • 2021-05-24
      • 1970-01-01
      • 2018-06-12
      • 1970-01-01
      • 2018-02-26
      • 1970-01-01
      相关资源
      最近更新 更多