tensorflow报错问题及解决方案记录页

环境:
tensorflow:2.1
keras:2.3.1

因为偶尔就会出现这些问题,每次都得重新搜索解决方案很麻烦,所以在此记录一下,持续更新


以下报错的原因是由于keras版本变动导致广播方式不一样

报错:
使用Keras实现Attention注意力时报错维度不匹配,报错位置是a = K.permute_dimensions(a, (0, 3, 2, 1))

ValueError: Dimension must be 5 but is 4 for ‘{{node attention_11/transpose_4}} = Transpose(attention_11/truediv, attention_11/transpose_4/perm)’ with input shapes: [?,8,?,8,?], [4]

将原句:

A = K.batch_dot(Q_seq, K_seq, axes=[3, 3]) / self.size_per_head ** 0.5

改为:

A = tf.einsum('bjhd,bkhd->bhjk', Q_seq, K_seq)/ self.size_per_head ** 0.5

将原句:

O_seq = K.batch_dot(A, V_seq, axes=[3, 2])

改为:

O_seq = tf.einsum('bhjk,bkhd->bjhd', A, V_seq)

以下报错的原因是python代码是基于TensorFlow1.0+的,而系统中的TensorFlow版本为2.0+

报错:

AttributeError: module ‘tensorflow’ has no attribute ‘ConfigProto’

将原句:

config = tf.ConfigProto()

改为:

config = tf.compat.v1.ConfigProto()

报错:

RuntimeError: set_session is not available when using TensorFlow 2.0.

将原句:

KTF.set_session(session)

改为:

tf.compat.v1.keras.backend.set_session(session)

报错:
AttributeError: module ‘tensorflow’ has no attribute ‘Session’

将原句:

sess = tf.Session()

改为:

sess = tf.compat.v1.Session()

报错:
TypeError: init() got an unexpected keyword argument ‘syntax’

通过以下命令解决:

conda install -c conda-forge protobuf

报错:
ImportError: No module named tensorboard.plugins

原因是tensorflow版本太低(0.1),安装tensorflow 1.0版本解决

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值