Error1: TypeError
TypeError: Tensor objects are only iterable when eager execution is enabled. To iterate over this tensor use tf.map_fn.
出错代码:
shape = tf.cast(tf.shape(img)[:-1], tf.float32)
long_dim = max(shape) #error here
Error2: AttributeError
AttributeError: module 'tensorflow' has no attribute 'optimizers'
出错代码:
opt = tf.optimizers.Adam(learning_rate=0.01, beta_1=0.99, epsilon=1e-1)
共同原因
在Pycharm上装的tensorflow的版本是v1 (1.14.0)
image.png
Error2解决方法:
将代码 tf.optimizers
改为 tf.keras.optimizers
共同解决方法:安装TF2.0版本
Option1:通过命令行
打开command line -> 输入 pip install tensorflow==2.0.0-beta1
Option2:使用Pycharm
File -> Settings -> Project - Project Interpreter -> “+”
image.png
搜索tensorflow -> 在Specify version前打勾✔,选择2.0.0b1 -> Install Package
image.png
Reference:
https://www.tensorflow.org/api_docs/python/tf/keras/optimizers/Adam
https://github.com/tensorflow/tensorflow/issues/27929
https://www.tensorflow.org/beta