日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

介紹

作為人類,我們有能力將在一項(xiàng)任務(wù)中獲得的知識(shí)遷移到另一項(xiàng)任務(wù)中去,任務(wù)越簡單,利用知識(shí)就越容易。一些簡單的例子是:

  • 了解數(shù)學(xué)和統(tǒng)計(jì)學(xué)→學(xué)習(xí)機(jī)器學(xué)習(xí)
  • 學(xué)會(huì)騎自行車→學(xué)騎摩托車

到目前為止,大多數(shù)機(jī)器學(xué)習(xí)和深度學(xué)習(xí)算法都是針對(duì)解決特定任務(wù)而設(shè)計(jì)的。如果分布發(fā)生變化,這些算法會(huì)再次被重建,并且很難重建和重新訓(xùn)練,因?yàn)樗枰?jì)算能力和大量的時(shí)間。

遷移學(xué)習(xí)是關(guān)于如何使用預(yù)訓(xùn)練好的網(wǎng)絡(luò),并將其應(yīng)用到我們的定制任務(wù)中,將它從以前的任務(wù)中學(xué)到的知識(shí)進(jìn)行遷移。

遷移學(xué)習(xí)我們可以采用VGG 16和ResNet等架構(gòu)。這些架構(gòu)經(jīng)過了廣泛的超參數(shù)調(diào)整,基于他們已經(jīng)學(xué)到的,我們將這些知識(shí)應(yīng)用到一個(gè)新的任務(wù)/模型中,而不是從頭開始,這就是所謂的遷移學(xué)習(xí)。

一些遷移學(xué)習(xí)模型包括:

  • Xception
  • VGG16
  • VGG19
  • Resnet, ResnetV2
  • InceptionV3
  • MobileNet

應(yīng)用遷移學(xué)習(xí)實(shí)現(xiàn)醫(yī)學(xué)應(yīng)用

在此應(yīng)用程序中,我們將檢測患者是否患有肺炎。我們使用Kaggle數(shù)據(jù)集進(jìn)行分類。下面給出了數(shù)據(jù)集和代碼的鏈接。

數(shù)據(jù)集鏈接

https://www.kaggle.com/paultimothymooney/chest-xray-pneumonia

代碼鏈接:

https://github.com/ajaymuktha/DeepLearning/blob/master/TransferLearning/transfer-learning.ipynb

數(shù)據(jù)集由一個(gè)訓(xùn)練集和測試集組成,子文件夾為normal(正常)和pneumonia(肺炎)。pneumonia文件夾有肺炎患者的胸部x光圖像,normal文件夾中有正常的圖像,即沒有肺部疾病。

安裝Tensorflow

如果你的電腦沒有GPU,你可以使用google colab,或者你可以使用Jupyter Notebook。如果你使用你的系統(tǒng),請(qǐng)升級(jí)pip,然后安裝TensorFlow,如下所示

遷移學(xué)習(xí)概論

 

導(dǎo)入庫

from keras.layers import Input, Lambda, Dense, Flatten
from keras.models import Model
from keras.Applications.vgg16 import VGG16
from keras.applications.vgg16 import preprocess_input
from keras.preprocessing import image
from keras.preprocessing.image import ImageDataGenerator
from keras.models import Sequential
import numpy as np
from glob import glob
import matplotlib.pyplot as plt

調(diào)整圖像大小

這里,我們將調(diào)整所有圖像的大小為224*224,因?yàn)槲覀兪褂肰GG16模型,它接受224*224大小的圖像。

# 調(diào)整圖像大小
IMAGE_SIZE = [224, 224]

訓(xùn)練和測試路徑

我們將指定訓(xùn)練和測試路徑。

train_path = 'Datasets/train'
valid_path = 'Datasets/test'

導(dǎo)入VGG16

vgg = VGG16(input_shape=IMAGE_SIZE + [3], weights='imagenet', include_top=False)

在這里,我們將為我們的應(yīng)用程序?qū)隫GG16模型權(quán)重。我們應(yīng)該向模型聲明一個(gè)圖像大小,我們已經(jīng)在上一步中完成了,參數(shù)3表示圖像將接受RGB圖像,即彩色圖像。

為了訓(xùn)練我們的模型,我們使用imagenet權(quán)重,include_top = False意味著它將從模型中刪除最后的層。

訓(xùn)練

像VGG16、VGG19、Resnet等模型已經(jīng)在成千上萬的圖像上進(jìn)行了訓(xùn)練,這些權(quán)重用于對(duì)數(shù)千個(gè)類進(jìn)行分類,因此我們使用這些模型權(quán)重對(duì)模型進(jìn)行分類,因此我們不需要再次訓(xùn)練模型。

# 不要訓(xùn)練現(xiàn)有的權(quán)重
for layer in vgg.layers:
  layer.trainable = False

類數(shù)量

我們使用glob來找出模型中類的數(shù)量。train文件夾中的子文件夾數(shù)表示模型中的類數(shù)。

folders = glob('Datasets/train/*')

Flattening

不管我們從VGG16得到的輸出是什么,我們都要把它展平,我們把VGG16的最后一層去掉,這樣我們就可以保留我們自己的輸出層了。我們用問題陳述中的類別數(shù)替換最后一層。我們使用softmax做我們的激活函數(shù),我們把它附加到x上。

x = Flatten()(vgg.output)
prediction = Dense(len(folders), activation='softmax')(x)

模型

我們將把它包裝成一個(gè)模型,其中輸入指的是我們從VGG16得到的,而輸出是指我們在上一步中創(chuàng)建的輸出層。

model = Model(inputs=vgg.input, outputs=prediction)

model.summary()
遷移學(xué)習(xí)概論

 

上圖是我們模型的摘要,在全連接層,我們有兩個(gè)節(jié)點(diǎn),因?yàn)閮蓚€(gè)不同的類別我們有肺炎和正常。

編譯

我們使用categoricaa_cross_entropy作為損失,adam優(yōu)化器和精度作為度量標(biāo)準(zhǔn)來編譯我們的模型。

model.compile(
  loss='categorical_crossentropy',
  optimizer='adam',
  metrics=['accuracy']
)

預(yù)處理

為了避免過度擬合,我們將對(duì)訓(xùn)練圖像進(jìn)行一些變換,如果不進(jìn)行變換,訓(xùn)練集和測試集的精度會(huì)有很大的差異。

我們執(zhí)行一些幾何變換,比如水平翻轉(zhuǎn)圖像、垂直翻轉(zhuǎn)圖像、放大、縮小等等,我們應(yīng)用它,這樣我們的模型就不會(huì)過擬合我們的訓(xùn)練圖像。我們使用ImageDataGenerator類執(zhí)行上述方法。

我們不為測試集應(yīng)用轉(zhuǎn)換,因?yàn)槲覀冎皇褂盟鼈儊碓u(píng)估,我們測試集的唯一任務(wù)就是重新調(diào)整圖像大小,因?yàn)樵谟?xùn)練部分,我們?yōu)閳D像定義了一個(gè)可以輸入網(wǎng)絡(luò)的目標(biāo)大小。

from keras.preprocessing.image import ImageDataGenerator

train_datagen = ImageDataGenerator(rescale = 1./255,
                                   shear_range = 0.2,
                                   zoom_range = 0.2,
                                   horizontal_flip = True)

test_datagen = ImageDataGenerator(rescale = 1./255)

flow_from_directory將圖像增強(qiáng)過程連接到我們的訓(xùn)練集。我們需要傳遞我們訓(xùn)練集的路徑。Target size是需要輸入神經(jīng)網(wǎng)絡(luò)的圖像的大小。batch size定義32,class mode是分類(categorical)的,因?yàn)槲覀冎挥袃蓚€(gè)輸出。

training_set = train_datagen.flow_from_directory('Datasets/train',
                                                 target_size = (224, 224),
                                                 batch_size = 32,
                                                 class_mode = 'categorical')

現(xiàn)在我們定義從目錄導(dǎo)入測試映像的測試集。我們定義了參數(shù),跟訓(xùn)練集一樣。

test_set = test_datagen.flow_from_directory('Datasets/test',
                                            target_size = (224, 224),
                                            batch_size = 32,
                                            class_mode = 'categorical')

擬合模型

我們將擬合我們的模型,并聲明epoch的數(shù)量為5,每個(gè)epoch的長度是訓(xùn)練集的長度,驗(yàn)證的長度是測試集的長度。

r = model.fit_generator(
  training_set,
  validation_data=test_set,
  epochs=5,
  steps_per_epoch=len(training_set),
  validation_steps=len(test_set)
)
遷移學(xué)習(xí)概論

 

很好,我們達(dá)到了97.7%的準(zhǔn)確率和91.5%的驗(yàn)證準(zhǔn)確率,這就是遷移學(xué)習(xí)的力量。希望你喜歡這篇關(guān)于遷移學(xué)習(xí)的教程。

分享到:
標(biāo)簽:遷移 學(xué)習(xí)
用戶無頭像

網(wǎng)友整理

注冊時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評(píng)定2018-06-03

通用課目體育訓(xùn)練成績評(píng)定