我是使用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()参数 必须是字符串,类似字节的对象或数字,而不是“元组”。
答案 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))