最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

pycharm中keras導(dǎo)入報(bào)錯(cuò)無法自動(dòng)補(bǔ)全cannot?find?reference分析

 更新時(shí)間:2022年07月03日 11:21:34   作者:??罟霖????  
這篇文章主要介紹了pycharm中keras導(dǎo)入報(bào)錯(cuò)無法自動(dòng)補(bǔ)全cannot?find?reference分析,文章圍繞主題展開分析,需要的小伙伴可以參考一下

引言

目前無論是中文還是國(guó)外網(wǎng)站對(duì)于如何正確的導(dǎo)入keras,如何從tensorflow中導(dǎo)入keras,如何在pycharm中從tensorflow里導(dǎo)入keras,這幾個(gè)問題都眾說紛紜,往往是互相借鑒給出一個(gè)可用的解決方法,但沒有更進(jìn)一步的解釋了。常見因?yàn)閗eras導(dǎo)入引發(fā)的問題有以下幾個(gè):

  • from tensorflow import keras: pycharm中使用keras相關(guān)的包沒有自動(dòng)補(bǔ)全
  • from tensorflow.keras.layers import Conv2D: pycharm中如此導(dǎo)入會(huì)發(fā)生Cannot find reference 'keras' in '__init__.py | __init__.py' 問題。

分析

首先需要說明的是上面兩種問題其實(shí)并不能稱之為“問題”,因?yàn)閷?shí)際上這些代碼都是可以運(yùn)行的,并且如果在pycharm自帶的python console里執(zhí)行這些問題也都是不存在的, 只是由于編譯器自帶的bug5使得這些現(xiàn)象一再發(fā)生。如果您只是要求代碼能運(yùn)行即可,那可以關(guān)閉頁(yè)面大膽的繼續(xù)編程了,但要是想要解決這些不便,可以繼續(xù)看下去。

解決方法

首先給出這些問題的解決方法

使用如下方式導(dǎo)入keras:

from tensorflow.python import keras

不從tensorflow里導(dǎo)入keras:

import keras

不導(dǎo)入keras,改用tf.keras.xxx來使用keras的相關(guān)函數(shù);

理論解釋

首先我們要明確一個(gè)概念,keras只是一個(gè)前端的API,其后端的計(jì)算都要基于現(xiàn)有的計(jì)算引擎,比如Theano或者Tensorflow1,而如今Tensorflow已經(jīng)成為了Keras的默認(rèn)后端,后者也成為了前者的官方高級(jí)API,也就意味著當(dāng)我們安裝2.0+版本的Tensorflow時(shí)實(shí)際會(huì)自動(dòng)安裝Keras2,經(jīng)筆者實(shí)測(cè)也確實(shí)如此。

 那么當(dāng)我們通過不同方式來導(dǎo)入keras時(shí),我們到底在導(dǎo)入什么,不同導(dǎo)入方法導(dǎo)入的包是否有區(qū)別呢?以下分別通過包的導(dǎo)入路徑及導(dǎo)入內(nèi)容進(jìn)行具體分析,為了更好理解其中內(nèi)容,建議去學(xué)習(xí)python中import的相關(guān)知識(shí)3.

keras常用導(dǎo)入方法有以下幾種:

import keras
from tensorflow import keras
from tensorflow.python import keras
import tensorflow as tf
tf.keras

1. 直接導(dǎo)入keras

尋址到的包為venv\Lib\site-packages\keras\__init__.py,也就是找到了keras的安裝路徑,直接運(yùn)行了__init__.py。但是keras這個(gè)包的init文件中并沒有顯式的導(dǎo)入keras包中的所有子包,只是顯式導(dǎo)入了一部分比如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

在僅導(dǎo)入keras的情況下,pycharm窗口中我們無法使用其他的代碼自動(dòng)補(bǔ)全,比如keras.optimizers等等。但值得注意的是,剛剛我說的是沒有“顯式導(dǎo)入”,而實(shí)際上顯式導(dǎo)入的這些py文件本身其實(shí)又導(dǎo)入了大部分keras所包含的函數(shù),這就使得雖然我們寫出keras.optimizers這樣的語句在pycharm中無法不全、高亮,但運(yùn)行起來是沒有問題的,而在python console中運(yùn)行也能夠自動(dòng)補(bǔ)全,其實(shí)這也算是pycharm的一個(gè)bug了。如果希望在窗口界面也能自動(dòng)補(bǔ)全,就應(yīng)該直接導(dǎo)入keras文件夾下的optimizer子文件夾:import keras.optimizer

2. 從tensorflow里導(dǎo)入keras

這一方法是執(zhí)行了venv\Lib\site-packages\tensorflow\__init__.py,而該文件中的keras實(shí)際是從 keras.api._v2 中導(dǎo)入了keras,執(zhí)行了\venvLib\site-packages\keras\api\_v2\keras\_init.py,而再進(jìn)一步的查看它實(shí)際也只是個(gè)空殼,進(jìn)一步的調(diào)用了\venvLib\site-packages\keras\api\_v2\keras文件夾下的其他子文件夾,雖然這些文件夾看起來十分唬人,和重寫了所有方法一樣,但實(shí)際上其下只包含著__init__文件,內(nèi)容也只是from keras import xx,和1中的方?jīng)]有區(qū)別,只是個(gè)重定位而已。因此我們可以推測(cè),在2.0+的版本里使用tf.keras.xxkeras.xx實(shí)際上是等價(jià)的,而在以前的版本是否存在區(qū)別,亦或者獨(dú)立安裝的keras是否有區(qū)別,筆者尚未去證實(shí)。

3. 從tensorflow.python里導(dǎo)入keras;

執(zhí)行了venv\Lib\site-packages\tensorflow\python\keras\__init__.py,這里的keras下包含了第一二種方法里導(dǎo)入的keras下屬函數(shù),是對(duì)1、2中方法的重寫而不是重定位。tf.python.keras是private的,提供給開發(fā)者使用的,并不建議普通用戶來使用。

4. 不導(dǎo)入keras

這一方法和2是等價(jià)的,不同點(diǎn)在于在pycharm中使用這種方式書寫可以實(shí)現(xiàn)代碼的自動(dòng)補(bǔ)全。

總結(jié)

這篇報(bào)錯(cuò)處理花了挺長(zhǎng)時(shí)間去搜集相關(guān)資料并且實(shí)際驗(yàn)證,最終弄明白了python的import原理和keras到底是以怎樣的形式和tensorflow取得聯(lián)系,也算是個(gè)挺大的收獲,總結(jié)就是后續(xù)的代碼直接import keras即可。當(dāng)然還有一些不太明晰的地方,比如tf.python.keras和keras在通用函數(shù)的實(shí)現(xiàn)方面方面是否存在區(qū)別,又有著怎樣的區(qū)別?

到此這篇關(guān)于pycharm中keras導(dǎo)入報(bào)錯(cuò)無法自動(dòng)補(bǔ)全cannot find reference分析的文章就介紹到這了,更多相關(guān)pycharm keras 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 在DOS界面如何運(yùn)行python的py文件

    在DOS界面如何運(yùn)行python的py文件

    這篇文章主要介紹了在DOS界面如何運(yùn)行python的py文件,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • python使用SQLAlchemy操作MySQL

    python使用SQLAlchemy操作MySQL

    這篇文章主要介紹了python使用SQLAlchemy操作MySQL,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • tensorflow求導(dǎo)和梯度計(jì)算實(shí)例

    tensorflow求導(dǎo)和梯度計(jì)算實(shí)例

    今天小編就為大家分享一篇tensorflow求導(dǎo)和梯度計(jì)算實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • Django ORM 聚合查詢和分組查詢實(shí)現(xiàn)詳解

    Django ORM 聚合查詢和分組查詢實(shí)現(xiàn)詳解

    這篇文章主要介紹了Django ORM 聚合查詢和分組查詢實(shí)現(xiàn)詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • PyQt5每天必學(xué)之工具提示功能

    PyQt5每天必學(xué)之工具提示功能

    這篇文章主要為大家詳細(xì)介紹了PyQt5每天必學(xué)之工具提示功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • Django中實(shí)現(xiàn)一個(gè)高性能計(jì)數(shù)器(Counter)實(shí)例

    Django中實(shí)現(xiàn)一個(gè)高性能計(jì)數(shù)器(Counter)實(shí)例

    這篇文章主要介紹了Django中實(shí)現(xiàn)一個(gè)高性能計(jì)數(shù)器(Counter)實(shí)例,分解成一步一步去講解,并配有例子,需要的朋友可以參考下
    2014-07-07
  • Python黑魔法@property裝飾器的使用技巧解析

    Python黑魔法@property裝飾器的使用技巧解析

    @property裝飾器能把一個(gè)方法變成屬性一樣來調(diào)用,下面我們就一起來看看Python黑魔法@property裝飾器的使用技巧解析
    2016-06-06
  • NumPy 數(shù)學(xué)函數(shù)及代數(shù)運(yùn)算的實(shí)現(xiàn)代碼

    NumPy 數(shù)學(xué)函數(shù)及代數(shù)運(yùn)算的實(shí)現(xiàn)代碼

    這篇文章主要介紹了NumPy 數(shù)學(xué)函數(shù)及代數(shù)運(yùn)算的實(shí)現(xiàn)代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-07-07
  • 使用Python實(shí)現(xiàn)一個(gè)優(yōu)雅的異步定時(shí)器

    使用Python實(shí)現(xiàn)一個(gè)優(yōu)雅的異步定時(shí)器

    在 Python 中實(shí)現(xiàn)定時(shí)器功能是一個(gè)常見需求,尤其是在需要周期性執(zhí)行任務(wù)的場(chǎng)景下,本文給大家介紹了基于 asyncio 和 threading 模塊,可擴(kuò)展的異步定時(shí)器實(shí)現(xiàn),需要的朋友可以參考下
    2025-04-04
  • Django 通過JS實(shí)現(xiàn)ajax過程詳解

    Django 通過JS實(shí)現(xiàn)ajax過程詳解

    這篇文章主要介紹了Django 通過JS實(shí)現(xiàn)ajax過程詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07

最新評(píng)論

广德县| 理塘县| 治多县| 页游| 梅河口市| 岐山县| 汉源县| 永昌县| 海门市| 峨眉山市| 永春县| 金乡县| 印江| 桦甸市| 阳原县| 巴林左旗| 新和县| 卫辉市| 明溪县| 鞍山市| 玉树县| 江川县| 惠东县| 永新县| 常山县| 宁强县| 贡山| 申扎县| 江油市| 团风县| 张北县| 招远市| 太保市| 井研县| 井陉县| 安徽省| 尼勒克县| 张家界市| 永靖县| 云霄县| 诏安县|