我在tensorflow或python方面的经验为零,并且在API参考中对语法的描述并不充分。
我要做的是将张量的第零列设置为1,以执行多元线性回归。
这是我到目前为止所得到的:
def MLR(M, N):
X = tf.random.uniform([M,N])
y = tf.random.uniform([M])
bias = tf.constant(1.0, shape=[M])
X = tf.concat([bias, X],axis=0)
sess = tf.Session()
sess.run(X)
print(X)
#w = np.dot( np.dot( np.linalg.matrix_power( (np.dot(Xt, X)) ,(-1)) ,Xt), y)
return
但是当我运行它时,我只会得到无法理解的错误。而且不管我尝试什么并更改它都行不通。 错误:
ValueError: Dimension 0 in both shapes must be equal, but are 1 and 9. Shapes are [1] and [9]. for 'concat' (op: 'ConcatV2') with input shapes: [100,1], [100,9], [] and with computed input tensors: input[2] = <0>.
答案 0 :(得分:1)
尝试使用类似bias = tf.ones([M, 1], tf.int32)
的名称。
错误告诉您形状不兼容:
Shapes are [1] and [9]. for 'concat'
您需要在轴上匹配长度匹配的向量/张量,
您要么需要将它们与axis=1
连接起来,要么更改第一维。