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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

8. Dropout and Strides For Larger Models

發(fā)布時間:2023/12/10 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 8. Dropout and Strides For Larger Models 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Intro

這是深度學(xué)習(xí)第8課。

本科結(jié)束后,你將會理解并知道如何使用:

  • Stride lengths來快速建立模型并減少內(nèi)存消耗;
  • Dropout 來對抗過擬合;

這兩個技術(shù)在大型模型中很有用。

Lesson

[1]

from IPython.display import YouTubeVideo YouTubeVideo('fwNLf4t7MR8', width=800, height=450)

Sample Code

[2]

import numpy as np import pandas as pd from sklearn.model_selection import train_test_split from tensorflow.python import keras from tensorflow.python.keras.models import Sequential from tensorflow.python.keras.layers import Dense, Flatten, Conv2D, Dropoutimg_rows, img_cols = 28, 28 num_classes = 10def data_prep(raw):out_y = keras.utils.to_categorical(raw.label, num_classes)num_images = raw.shape[0]x_as_array = raw.values[:,1:]x_shaped_array = x_as_array.reshape(num_images, img_rows, img_cols, 1)out_x = x_shaped_array / 255return out_x, out_ytrain_size = 30000 train_file = "../input/digit-recognizer/train.csv" raw_data = pd.read_csv(train_file)x, y = data_prep(raw_data)model = Sequential() model.add(Conv2D(30, kernel_size=(3, 3),strides=2,activation='relu',input_shape=(img_rows, img_cols, 1))) model.add(Dropout(0.5)) model.add(Conv2D(30, kernel_size=(3, 3), strides=2, activation='relu')) model.add(Dropout(0.5)) model.add(Flatten()) model.add(Dense(128, activation='relu')) model.add(Dense(num_classes, activation='softmax'))model.compile(loss=keras.losses.categorical_crossentropy,optimizer='adam',metrics=['accuracy']) model.fit(x, y,batch_size=128,epochs=2,validation_split = 0.2) /opt/conda/lib/python3.6/site-packages/h5py/__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.from ._conv import register_converters as _register_convertersTrain on 33600 samples, validate on 8400 samples Epoch 1/2 33600/33600 [==============================] - 14s 408us/step - loss: 0.6243 - acc: 0.8026 - val_loss: 0.2235 - val_acc: 0.9354 Epoch 2/2 33600/33600 [==============================] - 14s 417us/step - loss: 0.2664 - acc: 0.9176 - val_loss: 0.1315 - val_acc: 0.9630<tensorflow.python.keras._impl.keras.callbacks.History at 0x7f58d9f92c88>

?

Exercise: Dropout and Strides For Larger Models

Introduction

您已經(jīng)構(gòu)建了一個模型來識別MNIST for Fashion數(shù)據(jù)集中的服裝類型。 現(xiàn)在,您將使模型更大,指定更大的stride lengths并應(yīng)用dropout。 這些更改將使您的模型更快,更準(zhǔn)確。

這是深度學(xué)習(xí)課程的最后一步。

Starter Code

Data Preparation

你需要運行以下單元

【3】

import numpy as np from sklearn.model_selection import train_test_split from tensorflow.python import kerasimg_rows, img_cols = 28, 28 num_classes = 10def prep_data(raw, train_size, val_size):y = raw[:, 0]out_y = keras.utils.to_categorical(y, num_classes)x = raw[:,1:]num_images = raw.shape[0]out_x = x.reshape(num_images, img_rows, img_cols, 1)out_x = out_x / 255return out_x, out_yfashion_file = "../input/fashionmnist/fashion-mnist_train.csv" fashion_data = np.loadtxt(fashion_file, skiprows=1, delimiter=',') x, y = prep_data(fashion_data, train_size=50000, val_size=5000)

Sample Model Code

[4]

fashion_model = Sequential() fashion_model.add(Conv2D(12, kernel_size=(3, 3), strides=2,activation='relu',input_shape=(img_rows, img_cols, 1))) fashion_model.add(Conv2D(12, (3, 3), strides=2, activation='relu')) fashion_model.add(Flatten()) fashion_model.add(Dense(128, activation='relu')) fashion_model.add(Dense(num_classes, activation='softmax'))fashion_model.compile(loss=keras.losses.categorical_crossentropy,optimizer='adam',metrics=['accuracy'])fashion_model.fit(train_x, train_y,batch_size=batch_size,epochs=epochs,validation_split = 0.2)

Adding Strides

指定,編譯和擬合模型,與上面的模型非常相似,但為每個卷積層指定步長為2。 調(diào)用你的新模型fashion_model_1。

【5】

from tensorflow.python.keras.models import Sequential from tensorflow.python.keras.layers import Dense, Flatten, Conv2D, Dropoutfashion_model_1 = Sequential() # Specify the rest of the model# Compile fashion_model_1# Fit fashion_model_1

Make Model Larger

您應(yīng)該已經(jīng)注意到fashion_model_1訓(xùn)練得非常快。 這樣可以使模型更大。 指定名為fashion_model_2的新模型,該模型與fashion_model_1相同,但以下情況除外:

  • ???? 在Flatten圖層之前添加一個額外的Conv2D圖層。 使它類似于你已經(jīng)擁有的Conv2D圖層,除了不在這個新圖層中設(shè)置步幅長度(我們已經(jīng)用現(xiàn)有圖層縮小了表示)。
  • ???? 將每個卷積層中的過濾器數(shù)量更改為24。
  • 指定fashion_model_2后,編譯并擬合它。

    【6】

    # Your code for fashion_model_2 below

    Add Dropout

    指定fashion_model_3,它與fashion_model_2相同,只是它在每個卷積層之后立即添加了丟失(因此它增加了3次丟失)。 編譯并擬合此模型。 將模型在驗證數(shù)據(jù)上的性能與之前的模型進(jìn)行比較。

    【7】

    # Your code for fashion_model_3 below

    Congrats

    你已經(jīng)完成了深度學(xué)習(xí)課程的第1級。 您可以使用工具來創(chuàng)建和調(diào)整計算機視覺模型。 選擇一個項目并嘗試你的技能。
    您可能嘗試的一些有趣的數(shù)據(jù)集包括:

    • ???? 書面信件識別
    • ???? 花卉鑒定
    • ???? 貓與狗
    • ???? 10只猴子
    • ???? 從X射線預(yù)測骨齡

    你學(xué)到了很多東西。 在深度學(xué)習(xí)中還有很多東西需要學(xué)習(xí),但你應(yīng)該對自己的新技能感到滿意。

    Conclusion

    練習(xí)結(jié)束后,您已完成深度學(xué)習(xí)課程。 你已經(jīng)可以做一些很棒的事了,當(dāng)我們發(fā)布它時你就可以開始升級。 2級將擴展您可以做的許多新類型的應(yīng)用程序。

    總結(jié)

    以上是生活随笔為你收集整理的8. Dropout and Strides For Larger Models的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。