如何解决:引发TypeError(“将%s转换为TensorShape时出错:%s。”%(arg_name,e))?

时间:2019-10-09 10:54:50

标签: python tensorflow

我是使用tensorflow lib的新手python机器学习。我尝试了线性回归。我按照指示进行了操作,

  

raise TypeError(“将%s转换为TensorShape:%s时出错。”%   (Arg_name,e))

运行命令时出错:

n_dim = X_train.shape

X = tf.placeholder(tf.float32, [None, n_dim])

Y = tf.placeholder(tf.float32, [None, 1])

显示控制台:

  

文件   “ /home/huyhys/anaconda3/lib/python3.7/site-packages/tensorflow/python/eager/execute.py”,   第148行,在make_shape中        引发TypeError(“将%s转换为TensorShape时出错:%s。”%(arg_name,e))

     

TypeError:将形状转换为TensorShape时出错:int()参数   必须是字符串,类似字节的对象或数字,而不是“元组”。

1 个答案:

答案 0 :(得分:0)

这是因为X_train.shape返回一个元组,所以[None, n_dim] == [None, (shape_0, shape_1)]tf.placeholder需要的是[None, shape_0, shape_1]

以下工作解决方案:

import numpy as np
import tensorflow as tf

X_train = np.random.random((28, 28))
n_dim = X_train.shape

X = tf.placeholder(tf.float32, [None, *n_dim])

# OR

X = tf.placeholder(tf.float32, [None] + list(n_dim))