tensorflow2.0中修改了这个函数名,因此会报错。
正态分布这个函数truncated_normal()在C:\ProgramData\Anaconda3\envs\tensorflow\Lib\site-packages\tensorflow_core\python\ops\random_ops.py
打开这个文件后查看源代码,看到下面代码:函数废弃了!!!
@tf_export("random.truncated_normal",
v1=["random.truncated_normal", "truncated_normal"])
@deprecation.deprecated_endpoints("truncated_normal")
def truncated_normal(shape,
mean=0.0,
stddev=1.0,
dtype=dtypes.float32,
seed=None,
name=None):
在TensorFlow2.0官方文档中找到解决方案,地址如下:点击查看官方文档
https://www.tensorflow.org/api_docs/python/tf/random/truncated_normal
将tf.truncated_normal([image_size * image_size, num_labels]))修改为:
tf.compat.v1.random.truncated_normal([image_size * image_size, num_labels]))
不再报错!!!
在TensorFlow2.0,Keras 嵌入到TensorFlow中,变成默认的API,函数调用也发生了变化~!
In TensorFlow 2.0, Keras became the default high-level API, and optimizer functions migrated from tf.keras.optimizers into separate API called tf.optimizers. They inherit from Keras class Optimizer. Relevant functions from tf.train aren’t included into TF 2.0. So to access GradientDescentOptimizer, call tf.optimizers.SGD。。
在TensorFlow2.0官方文档中找到解决方案,地址如下:点击查看官方文档
https://www.tensorflow.org/api_docs/python/tf/compat/v1/train/GradientDescentOptimizer
将optimizer = tf.train.GradientDescentOptimizer(0.5).minimize(loss)修改为:
optimizer = tf.compat.v1.train.GradientDescentOptimizer(0.5).minimize(loss)
不再报错!!!
由于tensorflow2.0对很多函数做了修改,导致函数的所处的模块发生了改变,当遇到上述AttributeError时,记得打开官方文档,然后全局搜一下报错的函数。比如GradientDescentOptimizer函数,马上就能知道怎么使用这个函数了!!!