在Mac上安装Tensorflow并用tensorflow完成mnist手写数字体识别
---------------安装TensorFlow:-----------------
这里推荐一个博主的文章,写得很详细,链接附下:
雷–东北大汉
但是即使教程很详细,也可能出现很多情况。
可能出现的情况1:command not found :conda即conda显示无命令。解决办法是打开Mac终端,输入vim ~/.bash_profile
,在文件中找到类似这样一行:export PATH="//anaconda3/bin:$PATH",复制,张贴到起始终端,回车后就可以用conda了,当然,这并不是永久解决办法,每次运行conda都需要贴这一句,想永远解决还需要激活conda.
可能出现的情况2:上述完成后,可能在用conda activate tensorflow
激活tensorflow时,会发现报错,但是我发现只要输入source activte
后回车再输入source deactivate
回车,这样再次输入时就不会报错啦。
报错的图片:
解决后的图片:
(Ps:如果想知道关于tensorflow的信息,也可以输入conda search --full -name tensorflow
,当然,如果conda命令报错就按前面的方法解决)
可能出现的情况3:这点很重要!!!,运行anaconda的时候刚开始启动时一定要关闭网络,切换环境,然后再打开网络,不然会一直加载不出来。切换为tensorflow后再去下载3个插件,分别是spyder,Jupyter,ipython,这个下的特别慢,只有耐心点吧。。。。
然后就可以用一个简单的代码测试啦
import tensorflow.compat.v1 as tf
tf.compat.v1.disable_eager_execution()
hello = tf.constant('Hello, TensorFlow!') #初始化一个TensorFlow的常量
sess = tf.Session() #启动一个会话
print(sess.run(hello))
--------使用tensorflow完成数字体识别---------
代码这里推荐一个博主的,但是由于我用的是tensorflow2,所以很多东西都有些改变,具体会出现的错误在后面给出
链接: 博主hIp4207
错误一:出现AttributeError: module ‘tensorflow’ has no attribute ‘Session’
原因是2.0与1.0版本不兼容,翻看相关博客后将import tensorflow as tf改为
import tensorflow.compat.v1 as tf
tf.compat.v1.disable_eager_execution()
错误二:出现AttributeError: module ‘tensorflow’ has no attribute ‘placeholder’,将import tensorflow as tf改为
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()
并且由于tensorflow2将input_data给移出去了,所以我还在后面加了一段(不知道管不管用,但是和前面的代码是一块加的,不会报错就对了)
tf.__version__
mint=tf.keras.datasets.mnist
(x_,y_),(x_1,y_1)=mint.load_data()
import matplotlib.pyplot as plt #matplotlib是一个库,没这个你代码运行后显示不出图片,要自己下载,在anaconda里面向前面那样搜就行
plt.imshow(x_[0], cmap="binary")
plt.show()
错误三:注意,这里要特别看清你的tutorials路径是否正确(from和import中间那句)要是错了的话,除了你现在的这个代码,另一个有这个路径的也要改
(ps:如果想知道自己的tensorflow的路径和版本,可以在代码中添加如下的东西
print(tf.version)
print(tf.path)
错误四:出现ModuleNotFoundError: No module named ‘tensorflow.examples’
要解决这个问题,首先根据上面输出的路径找到tensorflow,再沿lib/python3.7/site-packages/keras去找examples文件下的tutorials,如果没有,可以去网上下载,然后放在examples文件夹下,tutorials下载:
链接: https://pan.baidu.com/s/1CzsjA2ARPAL8xYM6OsVHTw 提取码: 9c8u