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

在Keras中CNN聯(lián)合LSTM進(jìn)行分類(lèi)實(shí)例

 更新時(shí)間:2020年06月29日 10:31:25   作者:FQ_G  
這篇文章主要介紹了在Keras中CNN聯(lián)合LSTM進(jìn)行分類(lèi)實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

我就廢話不多說(shuō),大家還是直接看代碼吧~

def get_model():
  n_classes = 6
  inp=Input(shape=(40, 80))
  reshape=Reshape((1,40,80))(inp)
 #  pre=ZeroPadding2D(padding=(1, 1))(reshape)
  # 1
  conv1=Convolution2D(32, 3, 3, border_mode='same',init='glorot_uniform')(reshape)
  #model.add(Activation('relu'))
  l1=LeakyReLU(alpha=0.33)(conv1)
 
  conv2=ZeroPadding2D(padding=(1, 1))(l1)
  conv2=Convolution2D(32, 3, 3, border_mode='same',init='glorot_uniform')(conv2)
  #model.add(Activation('relu'))
  l2=LeakyReLU(alpha=0.33)(conv2)
 
  m2=MaxPooling2D((3, 3), strides=(3, 3))(l2)
  d2=Dropout(0.25)(m2)
  # 2
  conv3=ZeroPadding2D(padding=(1, 1))(d2)
  conv3=Convolution2D(64, 3, 3, border_mode='same',init='glorot_uniform')(conv3)
  #model.add(Activation('relu'))
  l3=LeakyReLU(alpha=0.33)(conv3)
 
  conv4=ZeroPadding2D(padding=(1, 1))(l3)
  conv4=Convolution2D(64, 3, 3, border_mode='same',init='glorot_uniform')(conv4)
  #model.add(Activation('relu'))
  l4=LeakyReLU(alpha=0.33)(conv4)
 
  m4=MaxPooling2D((3, 3), strides=(3, 3))(l4)
  d4=Dropout(0.25)(m4)
  # 3
  conv5=ZeroPadding2D(padding=(1, 1))(d4)
  conv5=Convolution2D(128, 3, 3, border_mode='same',init='glorot_uniform')(conv5)
  #model.add(Activation('relu'))
  l5=LeakyReLU(alpha=0.33)(conv5)
 
  conv6=ZeroPadding2D(padding=(1, 1))(l5)
  conv6=Convolution2D(128, 3, 3, border_mode='same',init='glorot_uniform')(conv6)
  #model.add(Activation('relu'))
  l6=LeakyReLU(alpha=0.33)(conv6)
 
  m6=MaxPooling2D((3, 3), strides=(3, 3))(l6)
  d6=Dropout(0.25)(m6)
  # 4
  conv7=ZeroPadding2D(padding=(1, 1))(d6)
  conv7=Convolution2D(256, 3, 3, border_mode='same',init='glorot_uniform')(conv7)
  #model.add(Activation('relu'))
  l7=LeakyReLU(alpha=0.33)(conv7)
 
  conv8=ZeroPadding2D(padding=(1, 1))(l7)
  conv8=Convolution2D(256, 3, 3, border_mode='same',init='glorot_uniform')(conv8)
  #model.add(Activation('relu'))
  l8=LeakyReLU(alpha=0.33)(conv8)
  g=GlobalMaxPooling2D()(l8)
  print("g=",g)
  #g1=Flatten()(g)
  lstm1=LSTM(
    input_shape=(40,80),
    output_dim=256,
    activation='tanh',
    return_sequences=False)(inp)
  dl1=Dropout(0.3)(lstm1)
  
  den1=Dense(200,activation="relu")(dl1)
  #model.add(Activation('relu'))
  #l11=LeakyReLU(alpha=0.33)(d11)
  dl2=Dropout(0.3)(den1)
 
#   lstm2=LSTM(
#     256,activation='tanh',
#     return_sequences=False)(lstm1)
#   dl2=Dropout(0.5)(lstm2)
  print("dl2=",dl1)
  g2=concatenate([g,dl2],axis=1)
  d10=Dense(1024)(g2)
  #model.add(Activation('relu'))
  l10=LeakyReLU(alpha=0.33)(d10)
  l10=Dropout(0.5)(l10)
  l11=Dense(n_classes, activation='softmax')(l10)
 
  model=Model(input=inp,outputs=l11)
  model.summary()
  #編譯model
  adam = keras.optimizers.Adam(lr = 0.0005, beta_1=0.95, beta_2=0.999,epsilon=1e-08)
  #adam = keras.optimizers.Adam(lr = 0.001, beta_1=0.95, beta_2=0.999,epsilon=1e-08)
  #sgd = keras.optimizers.SGD(lr = 0.001, decay = 1e-06, momentum = 0.9, nesterov = False)
 
  #reduce_lr = ReduceLROnPlateau(monitor = 'loss', factor = 0.1, patience = 2,verbose = 1, min_lr = 0.00000001, mode = 'min')
  model.compile(loss='categorical_crossentropy', optimizer=adam, metrics=['accuracy'])
  
  return model

補(bǔ)充知識(shí):keras中如何將不同的模型聯(lián)合起來(lái)(以cnn/lstm為例)

可能會(huì)遇到多種模型需要揉在一起,如cnn和lstm,而我一般在keras框架下開(kāi)局就是一句

model = Sequential()

然后model.add ,model.add , ......到最后

model.compile(loss=["mae"], optimizer='adam',metrics=[mape])

這突然要把模型加起來(lái),這可怎么辦?

以下示例代碼是將cnn和lstm聯(lián)合起來(lái),先是由cnn模型卷積池化得到特征,再輸入到lstm模型中得到最終輸出

import os
import keras
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'
from keras.models import Model
from keras.layers import *
from matplotlib import pyplot
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
from keras.layers import Dense,Dropout,Activation,Convolution2D,MaxPooling2D,Flatten
from keras.layers import LSTM
def design_model():
  # design network
  inp=Input(shape=(11,5))
  reshape=Reshape((11,5,1))(inp)
  conv1=Convolution2D(32,3,3,border_mode='same',init='glorot_uniform')(reshape)
  print(conv1)
  l1=Activation('relu')(conv1)
  conv2=Convolution2D(64,3,3, border_mode='same',)(l1)
  l2=Activation('relu')(conv2)
  print(l2)
  m2=MaxPooling2D(pool_size=(2, 2), border_mode='valid')(l2)
  print(m2)
  reshape1=Reshape((10,64))(m2)
  lstm1=LSTM(input_shape=(10,64),output_dim=30,activation='tanh',return_sequences=False)(reshape1)
  dl1=Dropout(0.3)(lstm1)
  # den1=Dense(100,activation="relu")(dl1)
  den2=Dense(1,activation="relu")(dl1)
  model=Model(input=inp,outputs=den2)
  model.summary() #打印出模型概況
  adam = keras.optimizers.Adam(lr = 0.001, beta_1=0.95, beta_2=0.999,epsilon=1e-08)
  model.compile(loss=["mae"], optimizer=adam,metrics=['mape'])
  return model
model=design_model()
history = model.fit(train_x, train_y, epochs=epochs, batch_size=batch_size, validation_data=[test_x, test_y],verbose=2, shuffle=True)
# #save LeNet_model_files after train
model.save('model_trained.h5')

以上示例代碼中cnn和lstm是串聯(lián)即cnn輸出作為lstm的輸入,一條路線到底

如果想實(shí)現(xiàn)并聯(lián),即分開(kāi)再匯總到一起

可用concatenate函數(shù)把cnn的輸出端和lstm的輸出端合并起來(lái),后面再接上其他層,完成整個(gè)模型圖的構(gòu)建。

g2=concatenate([g,dl2],axis=1)

總結(jié)一下:

這是keras框架下除了Sequential另一種函數(shù)式構(gòu)建模型的方式,更有靈活性,主要是在模型最后通過(guò) model=Model(input=inp,outputs=den2)來(lái)確定整個(gè)模型的輸入和輸出

以上這篇在Keras中CNN聯(lián)合LSTM進(jìn)行分類(lèi)實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Selenium定位元素操作示例

    Selenium定位元素操作示例

    這篇文章主要介紹了Selenium定位元素操作,結(jié)合實(shí)例形式總結(jié)分析了Selenium通過(guò)ID、name、XPath、標(biāo)簽名稱(chēng)、類(lèi)名等進(jìn)行元素定位操作的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2018-08-08
  • python matplotlib 注釋文本箭頭簡(jiǎn)單代碼示例

    python matplotlib 注釋文本箭頭簡(jiǎn)單代碼示例

    這篇文章主要介紹了python matplotlib 注釋文本箭頭簡(jiǎn)單代碼示例,具有一定借鑒價(jià)值。
    2018-01-01
  • 用Python可視化新冠疫情數(shù)據(jù)

    用Python可視化新冠疫情數(shù)據(jù)

    大家好,本篇文章主要講的是用Python可視化新冠疫情數(shù)據(jù),感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-01-01
  • 簡(jiǎn)單談?wù)刾ython中的語(yǔ)句和語(yǔ)法

    簡(jiǎn)單談?wù)刾ython中的語(yǔ)句和語(yǔ)法

    下面小編就為大家?guī)?lái)一篇簡(jiǎn)單談?wù)刾ython中的語(yǔ)句和語(yǔ)法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-08-08
  • Python中break語(yǔ)句和continue語(yǔ)句的用法講解

    Python中break語(yǔ)句和continue語(yǔ)句的用法講解

    在Python中,break語(yǔ)句和continue語(yǔ)句一般用于循環(huán)語(yǔ)句中,這篇文章主要介紹了Python中break語(yǔ)句和continue語(yǔ)句的用法小結(jié),需要的朋友可以參考下
    2022-12-12
  • pymongo為mongodb數(shù)據(jù)庫(kù)添加索引的方法

    pymongo為mongodb數(shù)據(jù)庫(kù)添加索引的方法

    這篇文章主要介紹了pymongo為mongodb數(shù)據(jù)庫(kù)添加索引的方法,涉及Python操作mongodb數(shù)據(jù)庫(kù)的相關(guān)技巧,非常簡(jiǎn)單實(shí)用,需要的朋友可以參考下
    2015-05-05
  • python數(shù)據(jù)處理 根據(jù)顏色對(duì)圖片進(jìn)行分類(lèi)的方法

    python數(shù)據(jù)處理 根據(jù)顏色對(duì)圖片進(jìn)行分類(lèi)的方法

    今天小編就為大家分享一篇python數(shù)據(jù)處理 根據(jù)顏色對(duì)圖片進(jìn)行分類(lèi)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • Tensorflow之Saver的用法詳解

    Tensorflow之Saver的用法詳解

    本篇文章主要介紹了Tensorflow之Saver的用法詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • python自定義模塊使用.pth文件實(shí)現(xiàn)重用方式

    python自定義模塊使用.pth文件實(shí)現(xiàn)重用方式

    這篇文章主要介紹了python自定義模塊使用.pth文件實(shí)現(xiàn)重用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • Python?pandas中apply函數(shù)簡(jiǎn)介以及用法詳解

    Python?pandas中apply函數(shù)簡(jiǎn)介以及用法詳解

    apply()函數(shù)是pandas里面所有函數(shù)中自由度最高的函數(shù), apply()函數(shù)的參數(shù)是一個(gè)函數(shù)指針,這里可以使用lambda表達(dá)式幫助簡(jiǎn)化代碼,下面這篇文章主要給大家介紹了關(guān)于Python?pandas中apply函數(shù)簡(jiǎn)介以及用法的相關(guān)資料,需要的朋友可以參考下
    2022-09-09

最新評(píng)論

安远县| 湘潭县| 墨玉县| 基隆市| 文登市| 府谷县| 塔城市| 北辰区| 卢氏县| 金秀| 年辖:市辖区| 甘肃省| 永州市| 德令哈市| 民勤县| 仁化县| 中宁县| 柏乡县| 石首市| 屯昌县| 榆林市| 综艺| 嘉荫县| 原阳县| 应城市| 庆云县| 确山县| 靖安县| 县级市| 神农架林区| 彭阳县| 平乐县| 鄢陵县| 巴彦县| 门头沟区| 泊头市| 和硕县| 象州县| 天长市| 弋阳县| 泰和县|