我对tf.py_func
函数有一个简单的问题。
我有一个形状my_img
的图像张量(1,224,224,3)
。为了测试py_func
,我将张量提供给python函数return_tf
,该函数应该返回相同的张量(根据文档转换为numpy数组之后)。
以下是代码:
def return_tf(x):
return np.array(x)
test = tf.py_func(return_tf,[my_img],[tf.float32])
但是当我检查返回张量的形状test
时,我得到了:
tf.Tensor 'PyFunc:0' shape=unknown dtype=float32
我也无法在张量上运行eval()
,因为我收到错误:
AttributeError: 'list' object has no attribute 'eval'.
任何人都知道如何修复由tf.py_func
返回的张量的张量形状?
答案 0 :(得分:5)
刚刚找到一个解决方法..因为py_func返回张量流列表,我可以做ff:
test = tf.reshape(tf.concat(1, test), [ <<a shape>> ])
获得具有所需形状的张量