目录
4、报错No module named 'tensorflow.examples.tutorials'
7、AttributeError: module 'PIL.Image' has no attribute 'imresize'
一、异常、错误
1、tensorboard报错无法打开显示
ModuleNotFoundError: No module named 'tensorflow_core.estimator'
解决:发现tensorflow-estimator与tensorflow的版本不匹配,tensorflow是2.0.0,tensorflow-estimator是2.6.0,使用如下代码进行版本降级到2.0.0:
conda install tensorflow-estimator=2.0.0
根据上述方法,仍然无法实现,根据参考资料6,把tf.summary.FileWriter(path, sess.graph)的path改为本地的日志目录,这里的本地目录选择'D:/sdxx/log_CNN_single',之后在anaconda prompt中,先进入本地目录,再把日志的地址指向这个本地目录:
cd D:\sdxx\log_CNN_single
tensorboard --logdir=D:\sdxx\log_CNN_single
2、导入matplotlib.pyplot失败
jupyter notebook(tf2)虚拟环境中,以下代码导入报错,提示不存在包,
import matplotlib.pyplot as plt
那就在anaconda prompt中install对应的matplotlib,这里选择了3.3.4版本,其中对应python3.7,可以使用conda search [包名] 查看相应包的版本信息。
conda install matplotlib=3.3.4
3、pandas、sklearn导入失败
在anaconda prompt中安装了pandas,但是在jupyter notebook(tf2)虚拟环境中,导入pandas包仍然一直报错,直到看见(base)这个怪怪的标志,才发现是没有切换虚拟环境。。。
如何解决?在anaconda prompt中,首先(每次开启prompt后的第一步,也是最重要的一步),使用如下代码切换虚拟环境到tf2:
conda activate tf2
然后再通过conda安装pandas、scikit-learn等包:
conda install pandas
conda install scikit-learn
这里的scikit-learn对应的是sklearn,注意安装时的名字。
4、报错No module named 'tensorflow.examples.tutorials'
使用如下代码导入input_data时发生报错:
from tensorflow.examples.tutorials.mnist import input_data
查阅资料,发现是当前虚拟环境(我的虚拟环境名是tf2)的tensorflow的examples中,不存在tutorials文件夹,因此,只要找到这个tutorials文件夹,并将它复制/移动到该目录下,tensorflow就可以正确使用mnist数据集的相关操作。
首先,查看tf2虚拟环境的tensorflow目录:
print(tf.__file__)
我的tensorflow目录是(因机器而异):
D:\sdxx\Anaconda3\envs\tf2\lib\site-packages\tensorflow_core\examples
然后,找到该目录,做好准备。
接着,按照许多帖子的说法,需要到tensorflow官方的GitHub中下载tutorials,但目前官方已不提供该文件夹,因此下载某博主提供的文件夹(请查看参考文章3,点击相应的某盘链接进行安装),成功解决该问题,复制/移动后的目录如下图所示:
接下来就可以正常导入,然后对MNIST数据集进行相应的训练啦!
5、jupyter报错ProfilerNotRunningError: Cannot stop profiling. No profiler is running. tensorboard报错Windows fatal exception: access violation
找博客搜资料找了半天,最后发现是tensorboard命令没有输对,一定要进入日志所在目录,我的在C盘/用户/logs/中,要先通过cd进入该目录,然后执行如下代码,最后就能在tensorboard中正确查看相关图数据。
tensorboard --logdir .
6、导入docx失败
在anaconda prompt中,首先(每次开启prompt后的第一步,也是最重要的一步),使用如下代码切换虚拟环境到tf2:
conda activate tf2
然后再通过pip安装python-docx包:
pip install python-docx
7、AttributeError: module 'PIL.Image' has no attribute 'imresize'
这里尝试通过其他方法转换实现imresize的功能,但是找不到突破点,于是尝试把scipy的版本降级为1.1.0,暂时解决该问题,后续遇到有能力再解决。
8、通过tf.keras.applications.InceptionV3获取InceptionV3模型时,报错AttributeError: 'str' object has no attribute 'decode'
由于Python3的str默认不是bytes,需要先encode转为bytes,再decode;Python2的str默认是bytes,所以可以decode。
通过把h5py降级为2.10.0,即可解决
9、猫狗大战迁移学习代码中,模型预测的代码报错
##模型预测
#1.载入模型
with open('./models/cat_dog.yaml') as yamlfile:
loaded_model_yaml=yamlfile.read()
model=tf.keras.models.model_from_yaml(loaded_model_yaml)
model.load_weights('./models/cat_dog.h5') #导入模型的权重参数
错误是代码line3的load函数缺少必填的Loader参数:
TypeError: load() missing 1 required positional argument: 'Loader'
由于Yaml 5.1版本后弃用yaml.load(file),Yaml 5.1版本后需要指定Loader,通过默认加载器(FullLoader)禁止执行任意函数使得此load函数的安全得到加强。
通过降低pyyaml版本即可。修改成
pip install pyyaml==5.3
二、操作方法
1、打开tensorboard
tensorboard --logdir=<directory_name>
举个例子,我的日志文件存放在E盘的log文件夹中:
tensorboard --logdir=E:/log
稍等片刻,当出现如下信息时,表示启动成功,在浏览器中打开该网页即可。
TensorBoard 2.8.0 at http://localhost:6006/
2、tensorboard查看某个日志目录的图数据
.表示当前目录
tensorboard --logdir .
参考文章
1.
2.
TensorBoard最全使用教程:看这篇就够了-优快云博客
3.
No module named ‘tensorflow.examples.tutorials‘报错解决办法_p2p_菜鸟1号!!-优快云学习社区
4.
tensorboard 报错 Windows fatal exception: access violation-优快云博客
5.
6.
tensorboard 报错 Windows fatal exception: access violation-优快云博客
7.
8.
python TypeError: load() missing 1 required positional argument: ‘Loader‘-优快云博客