日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

keras 的使用例子

發布時間:2025/3/15 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 keras 的使用例子 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

keras 搭建簡單模型

扁平化model.add(Flatten()) 可以用? 全局平均池化代替?model.add(GlobalAveragePooling2D())

方法1

# 序列模型 # 序列模型屬于通用模型的一種,因為很常見,所以這里單獨列出來進行介紹,這種模型各層之間 # 是依次順序的線性關系,在第k層和第k+1層之間可以加上各種元素來構造神經網絡 # 這些元素可以通過一個列表來制定,然后作為參數傳遞給序列模型來生成相應的模型from keras.models import Sequential from keras.layers import Dense from keras.layers import Activation# Dense相當于構建一個全連接層,32指的是全連接層上面神經元的個數 layers = [Dense(32, input_shape=(784,)),Activation('relu'),Dense(10),Activation('softmax')] model = Sequential(layers)
#輸出模型結構 model.summary()

方法2?

效果同方法1一樣

from keras.models import Sequential from keras.layers import Dense from keras.layers import Activationmodel = Sequential() model.add(Dense(32, input_shape=(784,))) model.add(Activation('relu')) model.add(Dense(10)) model.add(Activation('softmax')) model.summary()

?

一個稍復雜的例子

# 通用模型 # 通用模型可以用來設計非常復雜、任意拓撲結構的神經網絡,例如有向無環圖網絡 # 類似于序列模型,通用模型通過函數化的應用接口來定義模型 # 使用函數化的應用接口有好多好處,比如:決定函數執行結果的唯一要素是其返回值,而決定 # 返回值的唯一要素則是其參數,這大大減輕了代碼測試的工作量# 在通用模型中,定義的時候,從輸入的多維矩陣開始,然后定義各層及其要素,最后定義輸出層 # 將輸入層和輸出層作為參數納入通用模型中就可以定義一個模型對象from keras.layers import Input from keras.layers import Dense from keras.models import Model# 定義輸入層 input = Input(shape=(784,)) # 定義各個連接層,假設從輸入層開始,定義兩個隱含層,都有64個神經元,都使用relu激活函數 x = Dense(64, activation='relu')(input) x = Dense(64, activation='relu')(x) # 定義輸出層,使用最近的隱含層作為參數 y = Dense(10, activation='softmax')(x)# 所有要素都齊備以后,就可以定義模型對象了,參數很簡單,分別是輸入和輸出,其中包含了 # 中間的各種信息 model = Model(inputs=input, outputs=y)# 當模型對象定義完成之后,就可以進行編譯了,并對數據進行擬合,擬合的時候也有兩個參數 # 分別對應于輸入和輸出 model.compile(optimizer='rmsprop', loss='categorical_crossentropy', metrics=['accuracy']) model.fit(data, labels)

?

一個更加復雜的例子

import numpy as np from keras.datasets import mnist from keras.models import Sequential from keras.layers import Dense from keras.layers import Dropout from keras.layers import Flatten from keras.layers.convolutional import Conv2D from keras.layers.convolutional import MaxPooling2D# 先讀入數據 (X_train, y_train), (X_test, y_test) = mnist.load_data("../test_data_home") # 看一下數據集的樣子 print(X_train[0].shape) print(y_train[0])# 下面把訓練集中的手寫黑白字體變成標準的四維張量形式,即(樣本數量,長,寬,1) # 并把像素值變成浮點格式 X_train = X_train.reshape(X_train.shape[0], 28, 28, 1).astype('float32') X_test = X_test.reshape(X_test.shape[0], 28, 28, 1).astype('float32')# 由于每個像素值都介于0到255,所以這里統一除以255,把像素值控制在0-1范圍 X_train /= 255 X_test /= 255# 由于輸入層需要10個節點,所以最好把目標數字0-9做成One Hot編碼的形式 def tran_y(y):y_ohe = np.zeros(10)y_ohe[y] = 1return y_ohe# 把標簽用One Hot編碼重新表示一下 y_train_ohe = np.array([tran_y(y_train[i]) for i in range(len(y_train))]) y_test_ohe = np.array([tran_y(y_test[i]) for i in range(len(y_test))])# 搭建卷積神經網絡 model = Sequential() # 添加一層卷積層,構造64個過濾器,每個過濾器覆蓋范圍是3*3*1 # 過濾器步長為1,圖像四周補一圈0,并用relu進行非線性變化 model.add(Conv2D(filters=64, kernel_size=(3, 3), strides=(1, 1), padding='same',input_shape=(28, 28, 1), activation='relu')) # 添加一層最大池化層 model.add(MaxPooling2D(pool_size=(2, 2))) # 設立Dropout層,Dropout的概率為0.5 model.add(Dropout(0.5))# 重復構造,搭建深度網絡 model.add(Conv2D(128, kernel_size=(3, 3), strides=(1, 1), padding='same',activation='relu')) model.add(MaxPooling2D(pool_size=(2, 2))) model.add(Dropout(0.5)) model.add(Conv2D(256, kernel_size=(3, 3), strides=(1, 1), padding='same',activation='relu')) model.add(MaxPooling2D(pool_size=(2, 2))) model.add(Dropout(0.5))# 把當前層節點展平 model.add(Flatten())# 構造全連接層神經網絡層 model.add(Dense(128, activation='relu')) model.add(Dense(64, activation='relu')) model.add(Dense(32, activation='relu')) model.add(Dense(10, activation='softmax'))# 定義損失函數,一般來說分類問題的損失函數都選擇采用交叉熵 model.compile(loss='categorical_crossentropy', optimizer='adagrad', metrics=['accuracy'])# 放入批量樣本,進行訓練 model.fit(X_train, y_train_ohe, validation_data=(X_test, y_test_ohe), epochs=20, batch_size=128)# 在測試集上評價模型的準確率 # verbose : 進度表示方式。0表示不顯示數據,1表示顯示進度條 scores = model.evaluate(X_test, y_test_ohe, verbose=0)

?

遷移學習的例子

# 使用遷移學習的思想,以VGG16作為模板搭建模型,訓練識別手寫字體 # 引入VGG16模塊 from keras.applications.vgg16 import VGG16# 其次加載其他模塊 from keras.layers import Input from keras.layers import Flatten from keras.layers import Dense from keras.layers import Dropout from keras.models import Model from keras.optimizers import SGD# 加載字體庫作為訓練樣本 from keras.datasets import mnist# 加載OpenCV(在命令行中窗口中輸入pip install opencv-python),這里為了后期對圖像的處理, # 大家使用pip install C:\Users\28542\Downloads\opencv_python-3.4.1+contrib-cp35-cp35m-win_amd64.whl # 比如尺寸變化和Channel變化。這些變化是為了使圖像滿足VGG16所需要的輸入格式 import cv2 import h5py as h5py import numpy as np# 建立一個模型,其類型是Keras的Model類對象,我們構建的模型會將VGG16頂層去掉,只保留其余的網絡 # 結構。這里用include_top = False表明我們遷移除頂層以外的其余網絡結構到自己的模型中(意思是頂層不用) # weights='imagenet'使用imagenet大賽第一名的參數。 # VGG模型對于輸入圖像數據要求高寬至少為48個像素點,由于硬件配置限制,我們選用48個像素點而不是原來 # VGG16所采用的224個像素點。即使這樣仍然需要24GB以上的內存,或者使用數據生成器 model_vgg = VGG16(include_top=False, weights='imagenet', input_shape=(48, 48, 3)) for layer in model_vgg.layers:#遍歷vgg模型的每一層layer.trainable = False #每層的,參數都設置為不可變更的,使用初始參數 model = Flatten(name='flatten')(model_vgg.output) # 扁平化,將vgg模型的輸出。當做自己模型的輸入 model = Dense(4096, activation='relu', name='fc1')(model) model = Dense(4096, activation='relu', name='fc2')(model) model = Dropout(0.5)(model) model = Dense(10, activation='softmax')(model) model_vgg_mnist = Model(inputs=model_vgg.input, outputs=model, name='vgg16')# 打印模型結構,包括所需要的參數 model_vgg_mnist.summary()model_vgg = VGG16(include_top=False, weights='imagenet', input_shape=(224, 224, 3)) for layer in model_vgg.layers:layer.trainable = False model = Flatten()(model_vgg.output) model = Dense(4096, activation='relu', name='fc1')(model) model = Dense(4096, activation='relu', name='fc2')(model) model = Dropout(0.5)(model) model = Dense(10, activation='softmax', name='prediction')(model) model_vgg_mnist_pretrain = Model(model_vgg.input, model, name='vgg16_pretrain')model_vgg_mnist_pretrain.summary()# 新的模型不需要訓練原有卷積結構里面的1471萬個參數,但是注意參數還是來自于最后輸出層前的兩個 # 全連接層,一共有1.2億個參數需要訓練 sgd = SGD(lr=0.05, decay=1e-5) #sgd 隨機梯度下降法,作為優化器 model_vgg_mnist.compile(loss='categorical_crossentropy',optimizer=sgd, metrics=['accuracy'])# 因為VGG16對網絡輸入層的要求,我們用OpenCV把圖像從32*32變成48*48,函數cv2.COLOR_GRAY2RGB 把黑白圖像轉成RGB圖像 # 并把訓練數據轉化成張量形式,供keras輸入 (X_train, y_train), (X_test, y_test) = mnist.load_data("../test_data_home") X_train, y_train = X_train[:10000], y_train[:10000] X_test, y_test = X_test[:1000], y_test[:1000] X_train = [cv2.cvtColor(cv2.resize(i, (48, 48)), cv2.COLOR_GRAY2RGB)for i in X_train] X_train = np.concatenate([arr[np.newaxis] for arr in X_train]).astype('float32') X_test = [cv2.cvtColor(cv2.resize(i, (48, 48)), cv2.COLOR_GRAY2RGB)for i in X_test] X_test = np.concatenate([arr[np.newaxis] for arr in X_test]).astype('float32')print(X_train.shape) print(X_test.shape)X_train = X_train / 255 X_test = X_test / 255def tran_y(y):y_ohe = np.zeros(10)y_ohe[y] = 1return y_ohey_train_ohe = np.array([tran_y(y_train[i]) for i in range(len(y_train))]) y_test_ohe = np.array([tran_y(y_test[i]) for i in range(len(y_test))])model_vgg_mnist.fit(X_train, y_train_ohe, validation_data=(X_test, y_test_ohe),epochs=100, batch_size=50)

?

轉載于:https://www.cnblogs.com/HL-blog/p/9437461.html

總結

以上是生活随笔為你收集整理的keras 的使用例子的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 老色批影视 | 超碰在线免费观看97 | 亚洲综合影院 | 色妻av | 91九色porny视频 | 国产又粗又猛又爽又黄视频 | 最新中文字幕在线视频 | 无码人妻精品一区二区三区夜夜嗨 | 特黄级 | 我们的生活第五季在线观看免费 | 99er在线| 肌肉猛男裸体gay网站免费 | 操碰人人 | 欧洲亚洲一区 | 欧美激情在线观看视频 | 国产一区二区影院 | 饥渴少妇伦色诱公 | 热久久这里只有精品 | 日批视频网站 | 99久久国产综合 | 日本特级黄色大片 | 国产美女操| 日韩精品一区二区三区久久 | 97超碰国产在线 | 一区二区精品在线 | 日韩三区四区 | 无遮挡毛片 | 亚洲精品第五页 | 最新在线黄色网址 | 美女黄色一级视频 | 97成人精品 | 国产真实乱人偷精品视频 | 色盈盈影院| 被扒开腿一边憋尿一边惩罚 | 日韩在线观看第一页 | 一区二区三区四区精品 | 综合 欧美 亚洲日本 | 四虎精品成人免费网站 | 午夜影院在线播放 | 欧美成人综合网站 | 香蕉视频成人在线观看 | 中文字幕在线免费看线人 | 免费成人在线观看 | 51国产在线 | 欧洲成人av | 韩国毛片视频 | 亚洲视频一区在线 | 欧美涩涩视频 | 男人天堂av网站 | 色婷婷亚洲一区二区三区 | 国产精品福利在线观看 | 哪里可以看毛片 | 激情全身裸吻胸 | jzjzjz欧美丰满少妇 | 成人av手机在线观看 | 日韩性大片 | 日本精品一二三区 | 床戏高潮做进去大尺度视频 | 欧美性猛交xxxx乱大交退制版 | 日韩a在线观看 | 免费看黄在线观看 | 欧美一区二区免费视频 | 久久久噜噜噜www成人网 | 日本中文字幕在线观看视频 | 亚洲一级片在线观看 | 天天干干干 | 日产欧产va高清 | 一卡二卡三卡在线视频 | 国内三级在线 | 中国人妖和人妖做爰 | 一区二区黄色片 | 香蕉视频网页 | 亚洲一区二区三区四区不卡 | 亚洲国产网站 | 亚洲天堂影视 | 国产小视频在线观看 | 亚洲精品毛片av | 999久久久国产精品 韩国精品一区二区 | 一级片小视频 | 无码人妻少妇伦在线电影 | 日韩欧美国产一区二区三区在线观看 | 中国吞精videos露脸 | 精品视频在线观看免费 | 有机z中国电影免费观看 | 国模无码视频一区 | 露脸啪啪清纯大学生美女 | 超碰免费公开在线 | 久久久在线观看 | 黑人操亚洲人 | 综合网色 | 一区二区三区黄色 | 插插插干干干 | 羞羞涩涩视频 | 做暧暧视频在线观看 | 亚洲AV无码一区二区三区蜜桃 | 国产视频手机在线播放 | 亚洲AV无码乱码国产精品牛牛 | 午夜日韩电影 | 欧美1 |