<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
目前無論是中文還是國外網站對於如何正確的匯入keras,如何從tensorflow中匯入keras,如何在pycharm中從tensorflow裡匯入keras,這幾個問題都眾說紛紜,往往是互相借鑑給出一個可用的解決方法,但沒有更進一步的解釋了。常見因為keras匯入引發的問題有以下幾個:
首先需要說明的是上面兩種問題其實並不能稱之為“問題”,因為實際上這些程式碼都是可以執行的,並且如果在pycharm自帶的python console裡執行這些問題也都是不存在的, 只是由於編譯器自帶的bug5使得這些現象一再發生。如果您只是要求程式碼能執行即可,那可以關閉頁面大膽的繼續程式設計了,但要是想要解決這些不便,可以繼續看下去。
首先給出這些問題的解決方法:
使用如下方式匯入keras:
from tensorflow.python import keras
不從tensorflow裡匯入keras:
import keras
不匯入keras,改用tf.keras.xxx
來使用keras的相關函數;
首先我們要明確一個概念,keras只是一個前端的API,其後端的計算都要基於現有的計算引擎,比如Theano或者Tensorflow1,而如今Tensorflow已經成為了Keras的預設後端,後者也成為了前者的官方高階API,也就意味著當我們安裝2.0+版本的Tensorflow時實際會自動安裝Keras2,經筆者實測也確實如此。
那麼當我們通過不同方式來匯入keras時,我們到底在匯入什麼,不同匯入方法匯入的包是否有區別呢?以下分別通過包的匯入路徑及匯入內容進行具體分析,為了更好理解其中內容,建議去學習python中import的相關知識3.
keras常用匯入方法有以下幾種:
import keras from tensorflow import keras from tensorflow.python import keras import tensorflow as tf tf.keras
定址到的包為venvLibsite-packageskeras__init__.py
,也就是找到了keras的安裝路徑,直接執行了__init__.py
。但是keras這個包的init檔案中並沒有顯式的匯入keras包中的所有子包,只是顯式匯入了一部分比如Sequetial ,Model:
from keras import models from keras.engine.input_layer import Input from keras.engine.sequential import Sequential from keras.engine.training import Model
在僅匯入keras的情況下,pycharm視窗中我們無法使用其他的程式碼自動補全,比如keras.optimizers
等等。但值得注意的是,剛剛我說的是沒有“顯式匯入”,而實際上顯式匯入的這些py檔案本身其實又匯入了大部分keras所包含的函數,這就使得雖然我們寫出keras.optimizers
這樣的語句在pycharm中無法不全、高亮,但執行起來是沒有問題的,而在python console中執行也能夠自動補全,其實這也算是pycharm的一個bug了。如果希望在視窗介面也能自動補全,就應該直接匯入keras資料夾下的optimizer子資料夾:import keras.optimizer
。
這一方法是執行了venvLibsite-packagestensorflow__init__.py,而該檔案中的keras實際是從 keras.api._v2 中匯入了keras,執行了venvLibsite-packageskerasapi_v2keras_init.py,而再進一步的檢視它實際也只是個空殼,進一步的呼叫了venvLibsite-packageskerasapi_v2keras資料夾下的其他子資料夾,雖然這些資料夾看起來十分唬人,和重寫了所有方法一樣,但實際上其下只包含著__init__
檔案,內容也只是from keras import xx
,和1中的方沒有區別,只是個重定位而已。因此我們可以推測,在2.0+的版本里使用tf.keras.xx
和keras.xx
實際上是等價的,而在以前的版本是否存在區別,亦或者獨立安裝的keras是否有區別,筆者尚未去證實。
執行了venvLibsite-packagestensorflowpythonkeras__init__.py,這裡的keras下包含了第一二種方法裡匯入的keras下屬函數,是對1、2中方法的重寫而不是重定位。tf.python.keras
是private的,提供給開發者使用的,並不建議普通使用者來使用。
這一方法和2是等價的,不同點在於在pycharm中使用這種方式書寫可以實現程式碼的自動補全。
這篇報錯處理花了挺長時間去搜集相關資料並且實際驗證,最終弄明白了python的import原理和keras到底是以怎樣的形式和tensorflow取得聯絡,也算是個挺大的收穫,總結就是後續的程式碼直接import keras
即可。當然還有一些不太明晰的地方,比如tf.python.keras
和keras在通用函數的實現方面方面是否存在區別,又有著怎樣的區別?
到此這篇關於pycharm中keras匯入報錯無法自動補全cannot find reference分析的文章就介紹到這了,更多相關pycharm keras 內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45