解决:AttributeError: module ‘tensorflow_probability‘ has no attribute ‘optimizers‘

目录

一、问题

二、解决办法

 三、解决过程

四、怎么想到的?

五、关于Python运行环境的一些尝试

六、在github上自己提了问题,自己给出了解决方案


一、问题

import tensorflow as tf
import tensorflow_probability as tfp

x = tf.Variable(0.)
loss_fn = lambda: (x - 5.)**2

##convergence_criteria
losses = tfp.math.minimize(
  loss_fn, num_steps=1000, optimizer=tf.optimizers.Adam(learning_rate=0.1),
  convergence_criterion=(
    tfp.optimizers.convergence_criteria.LossNotDecreasing(atol=0.01)))

 这个代码是官网(tfp.math.minimize)提供的示例,并且显示Last updated 2023-10-03 UTC.

结果出现如下错误:

解决:AttributeError: module ‘tensorflow_probability‘ has no attribute ‘optimizers‘_第1张图片

二、解决办法

tfp.optimizers.convergence_criteria.LossNotDecreasing修改为tfp.python.optimizer.convergence_criteria.LossNotDecreasing

注意:这里使用加粗来直观表示二者的区别,让读者可以快速看到二者的区别。

实际上,删掉中间的python也是可以的,原来运行不出来的代码optimizers中多了一个字母s,删掉这个字母s即可。

x = tf.Variable(0.)
loss_fn = lambda: (x - 5.)**2
losses = tfp.math.minimize(
  loss_fn, num_steps=1000, optimizer=tf.optimizers.Adam(learning_rate=0.1),
  convergence_criterion=(
    tfp.python.optimizer.convergence_criteria.LossNotDecreasing(atol=0.01)))
print("optimized value is {} with loss {}".format(x, losses[-1]))

 三、解决过程

在Github(https://github.com/tensorflow/probability/releases/tag/v0.22.0)上找到最新版本Tensorflow-probability的源代码。

解决:AttributeError: module ‘tensorflow_probability‘ has no attribute ‘optimizers‘_第2张图片

下载后,可以看到

解决:AttributeError: module ‘tensorflow_probability‘ has no attribute ‘optimizers‘_第3张图片 解决:AttributeError: module ‘tensorflow_probability‘ has no attribute ‘optimizers‘_第4张图片

四、怎么想到的?

 在必应上找了许多类似的问题,虽然都是基于tensorflow的(我们的报错信息是基于tensorflow-probability)。例如:

(1)解决AttributeError: module ‘tensorflow‘ has no attribute ‘histogram_summary‘-CSDN博客

解决:AttributeError: module ‘tensorflow_probability‘ has no attribute ‘optimizers‘_第5张图片

解决:AttributeError: module ‘tensorflow_probability‘ has no attribute ‘optimizers‘_第6张图片

(2) 关于tensorflow 中module ‘tensorflow‘ has no attribute ‘xxx‘问题的根本解决方法

解决:AttributeError: module ‘tensorflow_probability‘ has no attribute ‘optimizers‘_第7张图片

解决:AttributeError: module ‘tensorflow_probability‘ has no attribute ‘optimizers‘_第8张图片 解决:AttributeError: module ‘tensorflow_probability‘ has no attribute ‘optimizers‘_第9张图片

解决:AttributeError: module ‘tensorflow_probability‘ has no attribute ‘optimizers‘_第10张图片 解决:AttributeError: module ‘tensorflow_probability‘ has no attribute ‘optimizers‘_第11张图片

解决:AttributeError: module ‘tensorflow_probability‘ has no attribute ‘optimizers‘_第12张图片 解决:AttributeError: module ‘tensorflow_probability‘ has no attribute ‘optimizers‘_第13张图片

解决:AttributeError: module ‘tensorflow_probability‘ has no attribute ‘optimizers‘_第14张图片

(3)ModuleNotFoundError: No module named ‘keras.optimizers.optimizer_experimental‘ 

解决:AttributeError: module ‘tensorflow_probability‘ has no attribute ‘optimizers‘_第15张图片

这个帖子,告诉我optimizers是个文件夹,之前一直以为是module,从尝试安装这个module来着。但是报错:No module named 'optimizers'。于是在必应中搜索这个错误,就搜索到上面的这个博客。

当然还有还看了其他的一些博客和stackoverflow,相关性不大,没在这里展示了。

五、关于Python运行环境的一些尝试

最开始遇到这个问题的时候,我以为是python运行环境的问题,于是尝试改变python运行环境:

  1. 在RStudio中运行python代码(通过miniconda安装python)【攻略:在R中搭配 Python环境-饮食有度的元气少女的博客】
  2. 下载Python解释器,创建Python虚拟环境。【攻略:安装python虚拟环境-CSDN博客】
  3. 在coLab上运行python代码(该平台已经提前安装好了tensorflow和tensorflow-probability无需安装)(https://colab.sandbox.google.com/)

在这三个平台上运行了,官网提供的示例代码,结果仍是报错。

真的差点要通过Python+PyCharm的安装步骤,来安装Python-IDE环境。(只不过下载Python3.9.13,可能服务器的网络不好,下载速度挺慢的,大概30mins。到这个问题解决了,Python3.9.13还没有下载好。于是没有尝试安装Python+PyCharm)。

六、在github上自己提了问题,自己给出了解决方案

解决:AttributeError: module ‘tensorflow_probability‘ has no attribute ‘optimizers‘_第16张图片

你可能感兴趣的:(R编程练习,tensorflow,人工智能,python,笔记)