Tensor占位符的形状(3,)是什么意思?

时间:2017-07-14 01:15:45

标签: python tensorflow

我是Tensorflow的新手,如果我问一个愚蠢的问题,对不起。 这是我的代码。它总是会出错:

ValueError: Cannot feed value of shape (3,) for Tensor 
'Placeholder:0', which has shape '(3, ?)'

我的问题是它的形状(3,)是什么意思?为什么我不能将形状(3,)的值提供给(3,?)占位符的形状?当我喂一个原始矩阵(即[1,3,8])时,为什么张量流将它识别为(3,)的形状,这似乎是一个有3个原始矩阵?

代码:

import tensorflow as tf
    x = tf.placeholder(tf.int32, [3,None])
    y = x-2

    with tf.Session() as session:
        result = session.run(y, feed_dict={x: [1,3,8]})
        print(result)

2 个答案:

答案 0 :(得分:0)

您的x是一个二维数组,但您正在为其输入一维输入。

此更改将起作用:

import tensorflow as tf
import numpy as np
x = tf.placeholder(tf.int32, [3,None])
y = x-2

with tf.Session() as session:
   result = session.run(y, feed_dict={x: np.reshape([1,3,8], (3,-1))})
   print(result)

答案 1 :(得分:0)

在开始任何框架之前,阅读基础知识非常有用。 TF已经拥有它们。阅读时间不到一小时,可以节省您的时间。足够的咆哮。

Reading about the terminology你可以看到形状(3,)表示你有3个元素的向量。这正是您提供的[1, 3, 8]

阅读shapes,你会发现你希望你的占位符是一个大小的矩阵(3 x的东西)。因此,请调整占位符或进食值。