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

keras建模的3種方式詳解

 更新時(shí)間:2023年08月23日 10:48:02   作者:月瘋  
這篇文章主要介紹了keras建模的3種方式詳解,keras是Google公司于2016年發(fā)布的以tensorflow為后端的用于深度學(xué)習(xí)網(wǎng)絡(luò)訓(xùn)練的高階API,因接口設(shè)計(jì)非常人性化,深受程序員的喜愛(ài),需要的朋友可以參考下

keras建模的3種方式

keras是google公司2016年發(fā)布的tensorflow為后端的深度學(xué)習(xí)網(wǎng)絡(luò)的高級(jí)接口。

三種建模方式:

  1. 序列模型
  2. 函數(shù)模型
  3. 子類模型

第一種序列模型:

import numpy as np
from tensorflow.examples.tutorials.mnist import input_data
from keras.models import Sequential
from keras.models import load_model
from keras.layers import Dense
#加載數(shù)據(jù)
def read_data(path):
    mnist=input_data.read_data_sets(path,one_hot=True)
    train_x,train_y=mnist.train.images,mnist.train.labels,
    valid_x,valid_y=mnist.validation.images,mnist.validation.labels,
    test_x,test_y=mnist.test.images,mnist.test.labels
    return train_x,train_y,valid_x,valid_y,test_x,test_y
#序列模型
def DNN(train_x,train_y,valid_x,valid_y):
    #創(chuàng)建模型
    model=Sequential()
    model.add(Dense(64,input_dim=784,activation='relu'))
    model.add(Dense(128,activation='relu'))
    model.add(Dense(10,activation='softmax'))
    #查看網(wǎng)絡(luò)模型
    model.summary()
    #編譯模型
    model.compile(optimizer='adam',loss='categorical_crossentropy',metrics=['accuracy'])
    #訓(xùn)練模型
    model.fit(train_x,train_y,batch_size=500,nb_epoch=100,verbose=1,validation_data=(valid_x,valid_y))
    #保存模型
    model.save('sequential.h5')
train_x,train_y,valid_x,valid_y,test_x,test_y=read_data('MNIST_data')
DNN(train_x,train_y,valid_x,valid_y)
model=load_model('sequential.h5')  #下載模型
pre=model.predict(test_x)  #測(cè)試驗(yàn)證
#計(jì)算驗(yàn)證集精度
a=np.argmax(pre,1)
b=np.argmax(test_y,1)
t=(a==b).astype(int)
acc=np.sum(t)/len(a)
print(acc)

 第二種函數(shù)模型

import numpy as np
from tensorflow.examples.tutorials.mnist import input_data
from keras.models import Model
from keras.models import load_model
from keras.layers import Input,Dense
#加載數(shù)據(jù)
def read_data(path):
    mnist=input_data.read_data_sets(path,one_hot=True)
    train_x,train_y=mnist.train.images,mnist.train.labels,
    valid_x,valid_y=mnist.validation.images,mnist.validation.labels,
    test_x,test_y=mnist.test.images,mnist.test.labels
    return train_x,train_y,valid_x,valid_y,test_x,test_y
#函數(shù)模型
def DNN(train_x,train_y,valid_x,valid_y):
    #創(chuàng)建模型
    inputs=Input(shape=(784,))
    x=Dense(64,activation='relu')(inputs)
    x=Dense(128,activation='relu')(x)
    output=Dense(10,activation='softmax')(x)
    model=Model(input=inputs,output=output)
    #查看網(wǎng)絡(luò)結(jié)構(gòu)
    model.summary()
    #編譯模型
    model.compile(optimizer='adam',loss='categorical_crossentropy',metrics=['accuracy'])
    #訓(xùn)練模型
    model.fit(train_x,train_y,batch_size=500,nb_epoch=100,verbose=1,validation_data=(valid_x,valid_y))
    #保存模型
    model.save('fun_model.h5')
train_x,train_y,valid_x,valid_y,test_x,test_y=read_data('MNIST_data')
DNN(train_x,train_y,valid_x,valid_y)
model=load_model('fun_model.h5')  #下載模型
pre=model.predict(test_x)  #驗(yàn)證數(shù)據(jù)集
#驗(yàn)證數(shù)據(jù)集準(zhǔn)確度
a=np.argmax(pre,1)
b=np.argmax(test_y,1)
t=(a==b).astype(int)
acc=np.sum(t)/len(a)
print(acc)

第三種子類模型

import numpy as np
from tensorflow.examples.tutorials.mnist import input_data
from keras.models import Model
from keras.layers import Dense
#加載數(shù)據(jù)
def read_data(path):
    mnist=input_data.read_data_sets(path,one_hot=True)
    train_x,train_y=mnist.train.images,mnist.train.labels,
    valid_x,valid_y=mnist.validation.images,mnist.validation.labels,
    test_x,test_y=mnist.test.images,mnist.test.labels
    return train_x,train_y,valid_x,valid_y,test_x,test_y
#子類模型
class DNN(Model):
    def __init__(self,train_x,train_y,valid_x,valid_y):
        super(DNN,self).__init__()
        #初始化網(wǎng)絡(luò)模型
        self.dense1=Dense(64,input_dim=784,activation='relu')
        self.dense2=Dense(128,activation='relu')
        self.dense3=Dense(10,activation='softmax')
    def call(self,inputs):  #回調(diào)順序
        x=self.dense1(inputs)
        x=self.dense2(x)
        x=self.dense3(x)
        return x
train_x,train_y,valid_x,valid_y,test_x,test_y=read_data('MNIST_data')
model=DNN(train_x,train_y,valid_x,valid_y)
#編譯模型(學(xué)習(xí)率、損失函數(shù)、模型評(píng)估)
model.compile(optimizer='adam(lr=0.001)',loss='categorical_crossentropy',metrics=['accuracy'])
#訓(xùn)練模型
model.fit(train_x,train_y,batch_size=500,nb_epoch=100,verbose=1,validation_data=(valid_x,valid_y))
#查看網(wǎng)絡(luò)結(jié)構(gòu)
model.summary()
pre=model.predict(test_x)  #驗(yàn)證數(shù)據(jù)集
#計(jì)算驗(yàn)證數(shù)據(jù)集的準(zhǔn)確度
a=np.argmax(pre,1)
b=np.argmax(test_y,1)
t=(a==b).astype(int)
acc=np.sum(t)/len(a)
print(acc)

常用的損失函數(shù): 

mse #均方差(回歸)

mae #絕對(duì)誤差(回歸)

binary_crossentropy #二值交叉熵(二分類,邏輯回歸)

categorical_crossentropy #交叉熵(多分類)

到此這篇關(guān)于keras建模的3種方式詳解的文章就介紹到這了,更多相關(guān)keras建模方式內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • jupyter notebook保存文件默認(rèn)路徑更改方法匯總(親測(cè)可以)

    jupyter notebook保存文件默認(rèn)路徑更改方法匯總(親測(cè)可以)

    安裝Anaconda后,新建文件的默認(rèn)存儲(chǔ)路徑一般在C系統(tǒng)盤(pán),那么路徑是什么呢?如何更改jupyter notebook保存文件默認(rèn)路徑呢?今天小編就這一問(wèn)題通過(guò)兩種方法給大家講解,需要的朋友跟隨小編一起看看吧
    2021-06-06
  • Python中比較特別的除法運(yùn)算和冪運(yùn)算介紹

    Python中比較特別的除法運(yùn)算和冪運(yùn)算介紹

    這篇文章主要介紹了Python中比較特別的除法運(yùn)算和冪運(yùn)算介紹,“/”這個(gè)是除法運(yùn)算,那么這個(gè)“//”呢?“*”這個(gè)是乘法運(yùn)算,那么這個(gè)“**”呢?本文就講解這些運(yùn)算的不同,需要的朋友可以參考下
    2015-04-04
  • Python中的lambda和apply用法及說(shuō)明

    Python中的lambda和apply用法及說(shuō)明

    這篇文章主要介紹了Python中的lambda和apply用法及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • python中把元組轉(zhuǎn)換為namedtuple方法

    python中把元組轉(zhuǎn)換為namedtuple方法

    在本篇文章里小編給大家整理的是一篇關(guān)于python中把元組轉(zhuǎn)換為namedtuple方法,有興趣的朋友們可以參考下。
    2020-12-12
  • Python中的請(qǐng)求重試策略深入探討

    Python中的請(qǐng)求重試策略深入探討

    在網(wǎng)絡(luò)通信中,由于各種原因,請(qǐng)求可能會(huì)失敗,為了增加程序的健壯性和可靠性,實(shí)現(xiàn)一個(gè)優(yōu)雅的請(qǐng)求重試策略是至關(guān)重要的,本文將深入探討如何在Python中實(shí)現(xiàn)優(yōu)雅的請(qǐng)求重試,通過(guò)豐富的示例代碼和詳細(xì)的解釋,幫助大家更好地理解和應(yīng)用重試機(jī)制
    2024-01-01
  • python實(shí)現(xiàn)beta分布概率密度函數(shù)的方法

    python實(shí)現(xiàn)beta分布概率密度函數(shù)的方法

    今天小編就為大家分享一篇python實(shí)現(xiàn)beta分布概率密度函數(shù)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-07-07
  • Python正則表達(dá)式經(jīng)典入門(mén)教程

    Python正則表達(dá)式經(jīng)典入門(mén)教程

    這篇文章主要介紹了Python正則表達(dá)式,結(jié)合具體實(shí)例形式歸納總結(jié)了Python正則表達(dá)式中常用的各種函數(shù)與相關(guān)使用技巧,需要的朋友可以參考下
    2017-05-05
  • Python教程之生產(chǎn)者消費(fèi)者模式解析

    Python教程之生產(chǎn)者消費(fèi)者模式解析

    在并發(fā)編程中使用生產(chǎn)者和消費(fèi)者模式能夠解決大不多的并發(fā)問(wèn)題。該模式通過(guò)平衡生產(chǎn)線程和消費(fèi)線程的工作能力來(lái)提高程序的整體處理數(shù)據(jù)的速度
    2021-09-09
  • ansible作為python模塊庫(kù)使用的方法實(shí)例

    ansible作為python模塊庫(kù)使用的方法實(shí)例

    ansible是一個(gè)python package,是個(gè)完全的unpack and play軟件,對(duì)客戶端唯一的要求是有ssh有python,并且裝了python-simplejson包,部署上簡(jiǎn)單到發(fā)指。下面這篇文章就給大家主要介紹了ansible作為python模塊庫(kù)使用的方法實(shí)例,需要的朋友可以參考借鑒。
    2017-01-01
  • Python封裝git命令的流程步驟

    Python封裝git命令的流程步驟

    在日常的 Android 項(xiàng)目開(kāi)發(fā)中,一般只會(huì)使用到: git add, git commit, git push, git pull, git rebase, git merge, git diff等常規(guī)命令,但是使用 git 命令,還可以做一些特別的事情,下面將介紹使用 python 封裝 git 命令,需要的朋友可以參考下
    2024-01-01

最新評(píng)論

扎兰屯市| 磴口县| 霍山县| 固安县| 孟津县| 行唐县| 萝北县| 青岛市| 来凤县| 甘泉县| 阿克苏市| 兴安县| 镇江市| 惠安县| 瓦房店市| 南雄市| 公安县| 那坡县| 梁平县| 田林县| 肥西县| 高雄市| 东城区| 渭南市| 遂川县| 中西区| 五常市| 巴马| 尉犁县| 麟游县| 黎川县| 元阳县| 涟水县| 博客| 龙门县| 宁化县| 定西市| 当阳市| 泸西县| 乌拉特后旗| 安远县|