【小白學習kears教程】四、Keras基于數字數據集建立基礎的CNN模型

      網友投稿 880 2025-03-31

      @Author:Runsen

      @[toc]

      基本卷積神經網絡(CNN)

      -CNN的基本結構:CNN與MLP相似,因為它們只向前傳送信號(前饋網絡),但有CNN特有的不同類型的層

      Convolutional layer:在一個小的感受野(即濾波器)中處理數據

      Pooling layer:沿2維向下采樣(通常為寬度和高度)

      Dense (fully connected) layer:類似于MLP的隱藏層

      import numpy as np import matplotlib.pyplot as plt from sklearn import datasets from sklearn.model_selection import train_test_split from keras.utils.np_utils import to_categorical

      加載數據集

      sklearn中的數字數據集

      文檔:http://scikit-learn.org/stable/auto_examples/datasets/plot_digits_last_image.html

      data = datasets.load_digits() plt.imshow(data.images[0]) # show first number in the dataset plt.show() print('label: ', data.target[0]) # label = '0'

      X_data = data.images y_data = data.target # shape of data print(X_data.shape) # (8 X 8) format print(y_data.shape)

      # reshape X_data into 3-D format X_data = X_data.reshape((X_data.shape[0], X_data.shape[1], X_data.shape[2], 1)) # one-hot encoding of y_data y_data = to_categorical(y_data)

      將數據劃分為列車/測試集

      X_train, X_test, y_train, y_test = train_test_split(X_data, y_data, test_size = 0.3, random_state = 777) print(X_train.shape) print(X_test.shape) print(y_train.shape) print(y_test.shape)

      from keras.models import Sequential from keras import optimizers from keras.layers import Dense, Activation, Flatten, Conv2D, MaxPooling2D

      1.創建模型

      創建模型與MLP(順序)相同

      model = Sequential()

      2.卷積層

      通常,二維卷積層用于圖像處理

      濾波器的大小(由“kernel\u Size”參數指定)定義感受野的寬度和高度**

      過濾器數量(由“過濾器”參數指定)等于下一層的深度

      步幅(由“步幅”參數指定)是過濾器每次移動改變位置的距離

      圖像可以零填充以防止變得太小(由“padding”參數指定)

      Doc: https://keras.io/layers/convolutional/

      【小白學習kears教程】四、Keras基于數字數據集建立基礎的CNN模型

      # convolution layer model.add(Conv2D(input_shape = (X_data.shape[1], X_data.shape[2], X_data.shape[3]), filters = 10, kernel_size = (3,3), strides = (1,1), padding = 'valid'))

      3. 激活層

      與 MLP 中的激活層相同

      一般情況下,也使用relu

      Doc: http://cs231n.github.io/assets/cnn/depthcol.jpeg

      model.add(Activation('relu'))

      4. 池化層

      一般使用最大池化方法

      減少參數數量

      文檔:https://keras.io/layers/pooling/

      model.add(MaxPooling2D(pool_size = (2,2)))

      5. Dense(全連接層)

      卷積和池化層可以連接到密集層

      文檔:https://keras.io/layers/core/

      # prior layer should be flattend to be connected to dense layers model.add(Flatten()) # dense layer with 50 neurons model.add(Dense(50, activation = 'relu')) # final layer with 10 neurons to classify the instances model.add(Dense(10, activation = 'softmax'))

      6. Model compile & train

      adam = optimizers.Adam(lr = 0.001) model.compile(loss = 'categorical_crossentropy', optimizer = adam, metrics = ['accuracy']) history = model.fit(X_train, y_train, batch_size = 50, validation_split = 0.2, epochs = 100, verbose = 0) plt.plot(history.history['acc']) plt.plot(history.history['val_acc']) plt.legend(['training', 'validation'], loc = 'upper left') plt.show()

      results = model.evaluate(X_test, y_test) print('Test accuracy: ', results[1])

      Keras 神經網絡

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:word文檔怎么對奇相同數字(word奇偶頁不同)
      下一篇:花三分鐘 幾個Excel技能 將有利于你很長一段時間
      相關文章
      亚洲中文无码av永久| 亚洲乱码一区av春药高潮| 亚洲色偷偷色噜噜狠狠99| 激情内射亚洲一区二区三区爱妻| 亚洲丝袜美腿视频| 亚洲午夜精品一区二区| 亚洲AV日韩AV鸥美在线观看| 亚洲AV中文无码字幕色三| 国产亚洲综合色就色| 亚洲高清国产AV拍精品青青草原| 久久精品国产精品亚洲艾草网| 亚洲av综合avav中文| 久久久久亚洲av无码专区导航| 色拍自拍亚洲综合图区| 亚洲精品视频在线观看免费 | 亚洲国产成人资源在线软件| 亚洲国产福利精品一区二区| 亚洲AV无码国产精品色| 亚洲日本va一区二区三区| 亚洲AV无码AV男人的天堂不卡 | 久久青青成人亚洲精品| 亚洲福利在线观看| 亚洲美女在线观看播放| 亚洲最大的黄色网| 亚洲国产成人精品无码区花野真一| 亚洲hairy多毛pics大全| 亚洲AV无码乱码在线观看| 亚洲色一色噜一噜噜噜| 亚洲精品无码久久久久| 亚洲第一精品福利| 亚洲13又紧又嫩又水多| 亚洲精品第一国产综合亚AV| 亚洲av日韩片在线观看| 亚洲中久无码永久在线观看同| 亚洲福利在线视频| 亚洲无mate20pro麻豆| 亚洲国产美女精品久久久| 亚洲av无码天堂一区二区三区 | 自拍偷区亚洲国内自拍| 男人的天堂亚洲一区二区三区 | 亚洲avav天堂av在线网爱情|