ValueError: Dimensions must be equal, but are....... tensorflow.python.framework.errors_impl.Invalid

ValueError: Dimensions must be equal, but are....... tensorflow.python.framework.errors_impl.Invalid

tf.matmul(H, W)

当我们使用tensorflow来做深度学习问题时,往往会用到matmul这一矩阵乘法运算。注意到这里的H即我们经过调整后的输入,W为权重矩阵。两个矩阵相乘时要注意维度匹配问题。维度不匹配时会报错。可以通过第一处用到矩阵乘法的函数自查问题。例如,我们在
self.u_pred, self.v_pred = self.net_uv(self.x_u_tf, self.y_u_tf, self.t_u_tf)
中调用了net_uv函数,其三个输入维度即和后面H的维度紧密相关。然后我们查找
self.x_u_tf, self.y_u_tf, self.t_u_tf这三个的定义
self.x_u_tf = tf.placeholder(tf.float32, shape=[None, self.x_u.shape[1]])
self.y_u_tf = tf.placeholder(tf.float32, shape=[None, self.y_u.shape[1]])
self.t_u_tf = tf.placeholder(tf.float32, shape=[None, self.t_u.shape[1]])
三个占位符表示这三个输入对应列数分别为x_u, y_u, t_u的列数
再往上
self.x_u = x_u_train[:, 0:1]
self.y_u = x_u_train[: 1:2]
self.t_u = x_u_train[: 2:3]
发现y_u和t_u后面少了逗号,致使输入维度发生了变化,造成维度不匹配,值错误的发生。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值