濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > Keras 如何修改圖片通道的順序

Keras 如何修改圖片通道的順序

熱門標(biāo)簽:沈陽(yáng)人工外呼系統(tǒng)價(jià)格 沈陽(yáng)外呼系統(tǒng)呼叫系統(tǒng) 池州外呼調(diào)研線路 沈陽(yáng)防封電銷卡品牌 如何申請(qǐng)400電話費(fèi)用 外呼系統(tǒng)哪些好辦 富錦商家地圖標(biāo)注 武漢外呼系統(tǒng)平臺(tái) 江西省地圖標(biāo)注

1. Error

在使用Keras.layers.convolutional.Convolution2D的時(shí)候

Convolution2D(32, 5, 5, border_mode='valid', input_shape=(1, 28, 28), activation='relu')

報(bào)如下錯(cuò)誤:

OverflowError: Range exceeds valid bounds

這是因?yàn)镵eras配置圖片通道順序錯(cuò)誤導(dǎo)致的。上面代碼使用圖片通道順序是[channels][height][width]

2. 修改圖片通道順序

檢查 ~/.keras/keras.json文件

if "image_dim_ordering": is "th" and "backend": "theano", your input_shape must be (channels, height, width)
if "image_dim_ordering": is "tf" and "backend": "tensorflow", your input_shape must be (height, width, channels)

所以,要保證你使用的通道順序和配置的通道順序一致

或者通過(guò)這樣修改

from keras import backend
backend.set_image_dim_ordering('th')

補(bǔ)充:Keras設(shè)置后端數(shù)據(jù)維度順序

Keras是比較高級(jí)的深度學(xué)習(xí)框架,其對(duì)幾個(gè)比較常見(jiàn)的主流深度學(xué)習(xí)框架的封裝而來(lái),也就是按照Keras的說(shuō)法就是其后端是以Tensorflow、Theano和CNTK為基礎(chǔ)封裝而來(lái)。

CNTK我沒(méi)做過(guò)多了解,tensorflow的tensor的維度順序和Theano的維度順序是不一樣的,所以在使用Keras的時(shí)候要格外注意這一點(diǎn),如果后端不同的話,設(shè)置的數(shù)據(jù)維度順序也是要不一樣的。

tensorflow的數(shù)據(jù)維度默認(rèn)順序是channels_last的好像,也就是說(shuō)其一個(gè)tensor的數(shù)據(jù)維度是[samples,rows,cols,channels],而Theano不同,其數(shù)據(jù)順序是channels_first,也就是[samples,rows,cols,channels],這個(gè)其實(shí)也就是這兩個(gè)框架的不同而已,如果用keras來(lái)寫深度學(xué)習(xí)模型的話,其實(shí)就只要設(shè)置好后端基本也沒(méi)啥問(wèn)題,也不必太考慮數(shù)據(jù)維度的問(wèn)題。

但是Keras的數(shù)據(jù)維度是可以改變的,即使是使用tensorflow為后端,Keras的數(shù)據(jù)格式也可以是channels_first的,并且這個(gè)是可以通過(guò)配置文件來(lái)改,也可以通過(guò)代碼來(lái)改的。

Keras的配置文件默認(rèn)是在$HOME/.keras/keras.json,可以用txt編輯器打開直接修改后端配置的:

{
    "floatx": "float32",
    "epsilon": 1e-07,
    "image_data_format": "channels_last",
    "backend": "tensorflow"
}

這是我的windows下的配置信息,默認(rèn)是以tensorflow為后端,數(shù)據(jù)格式是channels_last,但是我有個(gè)小項(xiàng)目是一開始是以Theano為后端來(lái)寫的,本來(lái)就只要稍微改一下就好,但是因?yàn)橹皇沁@個(gè)項(xiàng)目需要改為Theano,所以我并沒(méi)有直接改配置文件,而是在代碼里修改后端,這里需要用到Keras的后端backend來(lái)實(shí)現(xiàn),修改的代碼如下:

from keras import backend as BK
BK.set_image_data_format("channels_first")
BK.set_image_dim_ordering("th")

這樣設(shè)置之后再這個(gè)程序跑起來(lái)的時(shí)候其后端并不會(huì)被改變,改變的只是數(shù)據(jù)的維度順序而已,而且僅僅是針對(duì)當(dāng)前的程序,對(duì)其它程序是不影響的。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • keras實(shí)現(xiàn)VGG16方式(預(yù)測(cè)一張圖片)
  • 使用keras框架cnn+ctc_loss識(shí)別不定長(zhǎng)字符圖片操作
  • 使用keras內(nèi)置的模型進(jìn)行圖片預(yù)測(cè)實(shí)例
  • keras實(shí)現(xiàn)基于孿生網(wǎng)絡(luò)的圖片相似度計(jì)算方式
  • 利用keras加載訓(xùn)練好的.H5文件,并實(shí)現(xiàn)預(yù)測(cè)圖片

標(biāo)簽:通遼 阿里 黑龍江 銅川 呂梁 常德 潛江 株洲

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Keras 如何修改圖片通道的順序》,本文關(guān)鍵詞  Keras,如何,修改,圖片,通道,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Keras 如何修改圖片通道的順序》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Keras 如何修改圖片通道的順序的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    礼泉县| 长汀县| 乐至县| 澜沧| 澎湖县| 交城县| 金门县| 镇江市| 新民市| 自治县| 周至县| 邵阳县| 武陟县| 林口县| 禹州市| 迭部县| 绥中县| 临澧县| 阿克陶县| 霞浦县| 长沙市| 利川市| 汝城县| 丹江口市| 三台县| 桂阳县| 明溪县| 龙游县| 广灵县| 台东市| 上蔡县| 溧阳市| 西青区| 汨罗市| 贵阳市| 新宁县| 达拉特旗| 竹溪县| 嘉鱼县| 聂荣县| 蓝田县|