1、問題背景:構建神經(jīng)網(wǎng)絡在加入卷積層時出現(xiàn)報錯
face_recigntion_model.add(Conv2D(32,3,3,input_shape=(IMAGE_SIZE,IMAGE_SIZE,3),activation='relu'))
AttributeError: module 'tensorflow' has no attribute 'placeholder'
2、報錯原因:可能是由于tf.placeholder的版本問題,tf.placeholder是tensorflow1.x版本的東西,tensorflow2.0就不能用了
查看自己的TensorFlow版本print(tf.__version__)
我的為2.8.0,需要降版本
3、解決方法:
方法1:
修改import tensorflow as tf為
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()
方法2:
修改import tensorflow as tf為
import tensorflow.compat.v1 as tf
tf.compat.v1.disable_eager_execution()
方法3:我采用上述兩種方式都不行,需要手動降TensorFlow的版本,方式為將高版本python改變成低版本python以安裝低版本tensorflow.
1、先卸載已有的TensorFlow,在終端中輸入:
pip uninstall tensorflow進行卸載
2、將編譯環(huán)境降為python3.6
由于python3.7以上安裝tensorflow只有2.x的版本,所以需要將編譯環(huán)境也降到python3.6
安裝python3.6,在終端中輸入:
conda create --name py36 python=3.6 anaconda
重啟pycharm,激活python3.6,在終端中輸入:
activate py36
驗證環(huán)境,在終端中輸入:
python –version
輸出為:
Python 3.6.13 :: Anaconda, Inc.
如果還是原來的版本,需要重新啟動下pycharm在檢查版本。
3、安裝低版本TensorFlow
安裝TensorFlow1.4.0,在終端中輸入:
pip install tensorflow==1.4.0 -i Simple Index
安裝成功
PS:新的編譯環(huán)境中可能會缺少很多需要用的包,需要采用pip install 下載相關包
4、后續(xù)問題補充:
缺少cv2、sklearn… 在終端通過pip安裝
pip install opencv-python -i Simple Index
pip install scikit-learn -i https://pypi.douban.com/simple
繼續(xù)報錯:cannot import name ‘tf2‘
原因:keras的版本和tensorflow的版本不匹配,終端輸入:
pip list找到TensorFlow的版本
tensorflow???????????? 1.4.0
在對應表格中找到對應的keras版本,通過pip安裝
pip install keras==2.0.8 -i https://pypi.douban.com/simple
每解決一個問題就運行下程序,遇到新的問題解決新的問題,直至程序能夠運行下去不報錯。
5、個人心得
如果網(wǎng)絡上提供的方法不能解決問題,不要一直找新的答案,要先清楚問題的原因是什么,再去解決。譬如本次報錯的主要問題主要是TensorFlow的版本不對,所以輸入什么代碼以及有沒有用不重要,重要的是需要尋找并完成TensorFlow低版本的替代工作。
如果我解決了你的問題,請點贊給我加油,也謝謝在解決問題過程中參考的諸位大佬們。。
?主要參考:
將高版本py與tensorflow改變成低版本python以安裝低版本tensorflow_樹頂上的橙子的博客-CSDN博客_安裝低版本tensorflow文章來源:http://www.zghlxwxcb.cn/news/detail-812900.html
?文章來源地址http://www.zghlxwxcb.cn/news/detail-812900.html
到了這里,關于手把手解決module ‘tensorflow‘ has no attribute ‘placeholder的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!