keras離線下載模型的存儲(chǔ)位置

keras有著很多已經(jīng)與訓(xùn)練好的模型供調(diào)用,因此我們可以基于這些已經(jīng)訓(xùn)練好的模型來做特征提取或者微調(diào)指么,來滿足我們自己的需求。

比如我們要調(diào)用VGG16在imagenet下訓(xùn)練的模型:

from keras.applications import VGG16
conv_base = VGG16(include_top=False, weights='imagenet')
features_batch = conv_base.predict(inputs_batch)

這里是利用預(yù)訓(xùn)練的模型來做特征提取,因此我們不需要頂層的分類器網(wǎng)絡(luò)部分的權(quán)重迷帜,只需要使用到訓(xùn)練好的卷積基。這也就是VGG16參數(shù)中include_top=False的含義色洞,weights='imagenet'的意思就直接是基于imagenet訓(xùn)練的網(wǎng)絡(luò)權(quán)重了戏锹。

但是在服務(wù)器上運(yùn)行的時(shí)候遇到一個(gè)問題,因?yàn)檫@個(gè)模型第一次使用時(shí)需要去下載火诸,而服務(wù)器連接下載的url超時(shí)锦针。。惭蹂。那就只能手動(dòng)離線下載然后放到路徑里去供調(diào)用了伞插。

首先keras提供的模型下載地址是:https://github.com/fchollet/deep-learning-models/releases

其中我們找到vgg16_weights_tf_dim_ordering_tf_kernels_notop.h5下載即可。

從這個(gè)命名也可以看出很多信息了盾碗,比如從tf看出這是基于tensorflow的(th是基于Theano )媚污,notop也就是我們上面說的不要頂層的分類器部分,h5后綴表示keras使用HDF5格式存儲(chǔ)的廷雅,等等耗美。

下好后放在哪呢京髓?我們只能看看keras的代碼是怎么寫的,從報(bào)錯(cuò)信息中可以得到你的機(jī)器中vgg16.py的文件路徑商架,比如:

Traceback (most recent call last):
  File "main.py", line 9, in <module>
    train.train()
  File "/cloudox/cifar10_test/train.py", line 52, in train
    conv_base = VGG16(include_top=False, weights='imagenet')
  File "/……/keras/applications/__init__.py", line 28, in wrapper
    return base_fun(*args, **kwargs)
  File "/……/keras/applications/vgg16.py", line 11, in VGG16
    return vgg16.VGG16(*args, **kwargs)
  File "/……/keras_applications/vgg16.py", line 209, in VGG16
    file_hash='6d6bbae143d832006294945121d1f1fc')
  File "/……/keras/utils/data_utils.py", line 226, in get_file
    raise Exception(error_msg.format(origin, e.errno, e.reason))
Exception: URL fetch failure on https://github.com/fchollet/deep-learning-models/releases/download/v0.1/vgg16_weights_tf_dim_ordering_tf_kernels_notop.h5: None -- [Errno 110] Connection timed out

從報(bào)錯(cuò)信息中堰怨,第一我們可以知道是下載“https://github.com/fchollet/deep-learning-models/releases/download/v0.1/vgg16_weights_tf_dim_ordering_tf_kernels_notop.h5”這個(gè)文件超時(shí),這也是我們上面文件下載路徑的由來蛇摸。第二我們可以知道下載的源頭在哪里备图,大致檢查一下,就會(huì)發(fā)現(xiàn)是在"/……/keras_applications/vgg16.py"這個(gè)文件中(“/usr/local/app/anaconda2/envs/tensorflow/lib/python2.7/site-packages/keras_applications/vgg16.py”)赶袄,他的代碼其實(shí)就在這:https://github.com/fchollet/deep-learning-models/blob/master/vgg16.py

好我們看看vgg16.py的代碼揽涮,首先在頂部定義了兩個(gè)下載路徑:

WEIGHTS_PATH = 'https://github.com/fchollet/deep-learning-models/releases/download/v0.1/vgg16_weights_tf_dim_ordering_tf_kernels.h5'
WEIGHTS_PATH_NO_TOP = 'https://github.com/fchollet/deep-learning-models/releases/download/v0.1/vgg16_weights_tf_dim_ordering_tf_kernels_notop.h5'

然后往下翻會(huì)看到獲取模型權(quán)重文件的代碼:

    # load weights
    if weights == 'imagenet':
        if include_top:
            weights_path = get_file('vgg16_weights_tf_dim_ordering_tf_kernels.h5',
                                    WEIGHTS_PATH,
                                    cache_subdir='models')
        else:
            weights_path = get_file('vgg16_weights_tf_dim_ordering_tf_kernels_notop.h5',
                                    WEIGHTS_PATH_NO_TOP,
                                    cache_subdir='models')
        model.load_weights(weights_path)

還記得我們調(diào)用的時(shí)候傳的參數(shù)吧,VGG16(include_top=False, weights='imagenet')饿肺,所以就是這里蒋困。這里調(diào)用了get_file這個(gè)函數(shù)來從路徑中獲取權(quán)重文件,那我們看看這個(gè)函數(shù)在哪敬辣,代碼中說了在:

from keras.utils.data_utils import get_file

那就去找嘛雪标,既可以在你的文件夾里找,也可以在github找溉跃,因?yàn)関gg16這個(gè)文件屬于一個(gè)單獨(dú)的工程村刨,因此我們從作者的所有倉庫中找到keras工程,然后順著keras.utils.data_utils找到代碼喊积,在這:https://github.com/keras-team/keras/blob/master/keras/utils/data_utils.py

這時(shí)候離我們要的東西就不遠(yuǎn)了烹困,這時(shí)候都不用詳細(xì)看代碼,我們看下注釋:

注釋說乾吻,這個(gè)函數(shù)會(huì)先檢查cache中是否有文件髓梅,如果沒有就從url下載,而這個(gè)cache的路徑在~/.keras绎签,默認(rèn)存儲(chǔ)文件是datasets枯饿,說明默認(rèn)是下載數(shù)據(jù)集的,還記得vgg16那邊傳的參數(shù)么诡必,cache_subdir='models'奢方,所以這個(gè)文件應(yīng)該在的位置就是~/.keras/models,這時(shí)候我們直接進(jìn)入該目錄爸舒,發(fā)現(xiàn)果然有個(gè)models文件:

$ cd ~/.keras/
~/.keras]$ ls
datasets  keras.json  models

那就直接把文件放進(jìn)來就好啦蟋字。

這時(shí)候再去運(yùn)行之前自己的代碼就可以成功啦。


查看作者首頁

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末扭勉,一起剝皮案震驚了整個(gè)濱河市鹊奖,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌涂炎,老刑警劉巖忠聚,帶你破解...
    沈念sama閱讀 206,602評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件设哗,死亡現(xiàn)場離奇詭異,居然都是意外死亡两蟀,警方通過查閱死者的電腦和手機(jī)网梢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來赂毯,“玉大人战虏,你說我怎么就攤上這事〉程椋” “怎么了活烙?”我有些...
    開封第一講書人閱讀 152,878評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長遣鼓。 經(jīng)常有香客問我,道長重贺,這世上最難降的妖魔是什么骑祟? 我笑而不...
    開封第一講書人閱讀 55,306評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮气笙,結(jié)果婚禮上次企,老公的妹妹穿的比我還像新娘。我一直安慰自己潜圃,他們只是感情好缸棵,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,330評(píng)論 5 373
  • 文/花漫 我一把揭開白布悼做。 她就那樣靜靜地躺著较性,像睡著了一般。 火紅的嫁衣襯著肌膚如雪假抄。 梳的紋絲不亂的頭發(fā)上隧出,一...
    開封第一講書人閱讀 49,071評(píng)論 1 285
  • 那天踏志,我揣著相機(jī)與錄音,去河邊找鬼胀瞪。 笑死针余,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的凄诞。 我是一名探鬼主播圆雁,決...
    沈念sama閱讀 38,382評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼帆谍!你這毒婦竟也來了伪朽?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,006評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤既忆,失蹤者是張志新(化名)和其女友劉穎驱负,沒想到半個(gè)月后嗦玖,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,512評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡跃脊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,965評(píng)論 2 325
  • 正文 我和宋清朗相戀三年宇挫,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片酪术。...
    茶點(diǎn)故事閱讀 38,094評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡器瘪,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出绘雁,到底是詐尸還是另有隱情橡疼,我是刑警寧澤,帶...
    沈念sama閱讀 33,732評(píng)論 4 323
  • 正文 年R本政府宣布庐舟,位于F島的核電站欣除,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏挪略。R本人自食惡果不足惜历帚,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,283評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望杠娱。 院中可真熱鬧挽牢,春花似錦、人聲如沸摊求。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽室叉。三九已至睹栖,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間茧痕,已是汗流浹背磨淌。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評(píng)論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留凿渊,地道東北人梁只。 一個(gè)月前我還...
    沈念sama閱讀 45,536評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像埃脏,于是被迫代替她去往敵國和親搪锣。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,828評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容