首页 > 解决方案 > 如何将形状(3,3)的张量流图像值输入具有形状(?,2)的目标

问题描述

我正在尝试将形状 3,3 的值输入形状 (?, 2) 的张量。我的问题是如何重塑我的 (3,3) 值,使其与后者兼容。

这是我的主要训练循环:

for epoch in range(epochs):
    batches = dg.get_mini_batches(batchSize,(128,128), allchannel=False)
    for imgs ,labels in batches:
        imgs=np.divide(imgs, 255)
        error, sumOut, acu, steps,_ = sess.run([cost, summaryMerged, accuracy,global_step,optimizer],
                                        feed_dict={input_img: imgs, target_labels: labels})
        writer.add_summary(sumOut, steps)
        print("epoch=", epoch, "Total Samples Trained=", steps*batchSize, "err=", error, "accuracy=", acu)
        if steps % 100 == 0:
            print("Saving the mdl")
            saver.save(sess, mdl_save_path+mdl_name, global_step=steps)


Traceback (most recent call last):
  File "C:/Users/name/PycharmProjects/tf-foodar/tf-foodar-beta.py", line 87, in <module>
    feed_dict={input_img: imgs, target_labels: labels})
  File "C:\Users\name\anaconda\envs\lib\site-packages\tensorflow\python\client\session.py", line 895, in run
    run_metadata_ptr)
  File "C:\Users\name\anaconda\envs\lib\site-packages\tensorflow\python\client\session.py", line 1104, in _run
    % (np_val.shape, subfeed_t.name, str(subfeed_t.get_shape())))
ValueError: Cannot feed value of shape (3, 3) for Tensor 'Target/Targets:0', which has shape '(?, 2)'

标签: pythontensorflow

解决方案


你不能。

(3,3)无法将具有形状的张量重新整形(使用tf.reshape)为具有未知维度且固定的形状的张量。(?,2)?2

这是因为您有3 x 3 = 9元素并且9/2 = 4.5不是整数(4.5 是未知维度的计算值)。因此,您无法使用 shape 创建新张量(4.5, 2)

但是,你的推理有问题。问问自己:为什么我要向网络提供网络无法接受的数据?


推荐阅读