如何将张量中列0的每个值设置为1

时间:2019-04-30 17:50:06

标签: python tensorflow linear-regression

我在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>.

1 个答案:

答案 0 :(得分:1)

尝试使用类似bias = tf.ones([M, 1], tf.int32)的名称。 错误告诉您形状不兼容:

Shapes are [1] and [9]. for 'concat' 您需要在轴上匹配长度匹配的向量/张量, 您要么需要将它们与axis=1连接起来,要么更改第一维。