【问题标题】:cannot reshape array of size 20000 into shape (8,50,50,3)无法将大小为 20000 的数组重塑为形状 (8,50,50,3)
【发布时间】:2020-02-12 08:55:13
【问题描述】:

现在迭代我们的数据集 n_epoch 次 对于范围内的迭代(纪元): print("迭代编号:{}".format(iteration))

previous_batch=0
# Do our mini batches:
for i in range(no_itr_per_epoch):
    current_batch=previous_batch+batch_size
    x_input=X_train[previous_batch:current_batch]
    x_images=np.reshape(x_input,[batch_size,50,50,3])

    y_input=Y_train[previous_batch:current_batch]
    y_label=np.reshape(y_input,[batch_size,2])
    previous_batch=previous_batch+batch_size

    _,loss=sess.run([train_step, cross_entropy], feed_dict={x: x_images,y_: y_label})
    if i % 100==0 :
        print ("Training loss : {}" .format(loss))



x_test_images=np.reshape(X_test[0:n_test],[n_test,50,50,3])
y_test_labels=np.reshape(Y_test[0:n_test],[n_test,2])
Accuracy_test=sess.run(accuracy,
                       feed_dict={
                    x: x_test_images ,
                    y_: y_test_labels
                  })
Accuracy_test=round(Accuracy_test*100,2)

x_val_images=np.reshape(X_val[0:n_val],[n_val,50,50,3])
y_val_labels=np.reshape(Y_val[0:n_val],[n_val,2])
Accuracy_val=sess.run(accuracy,
                       feed_dict={
                    x: x_val_images ,
                    y_: y_val_labels
                  })    
Accuracy_val=round(Accuracy_val*100,2)
print("Accuracy ::  Test_set {} % , Validation_set {} % " .format(Accuracy_test,Accuracy_val))

ValueError: 无法将大小为 20000 的数组重新整形为 (8,50,50,3)

def process_img(img):

【问题讨论】:

  • 新的形状应该和原来的形状兼容。 (8,50,50,3) 与原始大小 20000 相比导致 60000

标签: python tensorflow


【解决方案1】:

8 * 50 * 50 * 3 = 60,000。因此,大小为 20,000 的原件无法调整为新形状。 你可以做的是将它重塑为 (8, 50, 50, 1) 然后广播,因为 8 * 50 * 50 = 20,000。

【讨论】:

    猜你喜欢
    • 2020-10-15
    • 2019-08-23
    • 2020-02-18
    • 2020-04-14
    • 2020-10-05
    • 2020-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多