Tensorflow.keras筆記-卷積神經網絡

2021-02-21 阿皮的筆記

Tensorflow.keras筆記-卷積神經網絡

cifar10數據集

    1. 載入cifar10數據集

    2. 處理數據,歸一化

    3. 數據擴增

    4. 建模

    5. 斷點續訓

    6. 給圖識物

#載入包import tensorflow as tfimport osimport numpy as npfrom matplotlib import pyplot as pltfrom tensorflow.keras.layers import Conv2D,BatchNormalization,Activation,MaxPool2D,Dropout,Flatten,Densefrom tensorflow.keras import Modelnp.set_printoptions(threshold=np.inf)

1-2:載入cifar10數據集,並進行歸一化處理

        cifar10數據集共有60000張彩色圖像,這些圖像是32*32,分為10個類,每類6000張圖。這裡面有50000張用於訓練,另外10000用於測試。

#數據導入處理cifar10 = tf.keras.datasets.cifar10(x_train,y_train),(x_test,y_test) = cifar10.load_data()x_train,x_test = x_train / 255.0, x_test / 255.0

3:建模,卷積神經網絡核心是應用卷積層對圖片進行特徵提取,而後在用全連接層進行神經網絡分析。卷積層包含五部分:卷積層(Conv2D),批標準化(BN),激活(Activation),池化層(Pooling)和Dropout。卷積就是採用多個『CBAPD』提取圖片特徵。
#建模class Baseline(Model): #繼承Model         def __init__(self):        super(Baseline,self).__init__()        self.c1 = Conv2D(filters=6, kernel_size=(5,5), padding='same') #卷積        self.b1 = BatchNormalization() #批標準化        self.a1 = Activation('relu')  #激活函數        self.p1 = MaxPool2D(pool_size=(2,2), strides=2,padding='same') #最大池化        self.d1 = Dropout(0.2) #隨機沉默參數        self.flatten = Flatten() #全連接        self.f1 = Dense(128, activation='relu')        self.d2 = Dropout(0.2)        self.f2 = Dense(10, activation='softmax')    def call(self, x):        x = self.c1(x)        x = self.b1(x)        x = self.a1(x)        x = self.p1(x)        x = self.d1(x)        x = self.flatten(x)        x = self.f1(x)        x = self.d2(x)        y = self.f2(x)        return ymodel = Baseline()

4:設置參數,斷點續訓,數據增強,模型訓練。數據增強函數    數據增強採用keras自帶的ImageDataGenerator函數
tf.keras.preprocessing.image.ImageDataGenerator(rescale = 所有數據將乘以該數值rotation_range = 隨機旋轉角度數範圍width_shift_range = 隨機寬度偏移量height_shift_ragne = 隨機高度偏移量horizontal_flip = 是否隨機水平翻轉zoom_range = 隨機縮放的範圍[1-n, 1+n])image_gen_train.fit(x_train)model.fit(image_gen_train.flow(x_train,y_train,batch_size=32),...)

model.compile(optimizer = 'adam',              loss = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=False),              metrics=['sparse_categorical_accuracy'])cp_callback = tf.keras.callbacks.ModelCheckpoint(                       filepath='D:/Python/cifar10/check.skpt',                       save_weight_only=True,                       save_best_only=True)model.fit(x_train,          y_train,batch_size=32,          epochs=5,          validation_data=(x_test,y_test),          validation_freq=1,          callbacks=[cp_callback])

5. 給圖識物:採用model.predict()函數識別圖片,並輸出結果
import matplotlib as pltfrom PIL import Imageclothes = ['T恤', '長褲', '長袖', '裙子', '外套', '涼鞋', '襯衫', '休閒鞋', '包包', '鞋子']for i in range(10):    path = 'D:/1_數據/Python/Tensorflow學習/數據/exam_fashion/' + str(i) + '.jpg'    img = Image.open(path)    img = img.resize((28,28),Image.ANTIALIAS)    img = img.convert('L')    img = np.array(img)    img = 255-img    img = img / 255.0    x_predict = img[tf.newaxis, ...,tf.newaxis]    result = model.predict(x_predict)    pred = tf.argmax(result, axis=1)    num = int(np.array(pred))    print('這件是:{0}_{1}'.format(num,clothes[num]))

https://www.icourse163.org/course/PKU-1002536002

相關焦點

  • 用TensorFlow和Keras構建卷積神經網絡
    筆者已經編寫了一個如何使用TensorFlow的KerasAPI來訓練神經網絡的教程,著重介紹了自動編碼器:http://www.datastuff.tech/machine-learning/autoencoder-deep-learning-tensorflow-eager-api-keras/本文將嘗試三種不同的體系結構
  • TensorFlowNews五大經典卷積神經網絡介紹:LeNet / AlexNet / GoogLeNet / VGGNet/
    最常見的是:卷積神經網絡的第一批成功應用,是由 Yann LeCun 在 20 世紀 90 年代開發的。其中最著名的是用於識別郵政編碼,數字等的LeNet架構。首先讓卷積神經網絡在計算機視覺中流行的是由 Alex Krizhevsky,Ilya Sutskever 和 Geoff Hinton 開發的 AlexNet。
  • Keras和TensorFlow究竟哪個會更好?
    我會使用基於 TensorFlow 的標準 keras 模塊和 tf.keras 模塊,來實現一個卷積神經網絡(CNN)。然後,基於一個示例數據集,來訓練這些 CNN,然後檢查所得結果,你會發現,Keras 和 TensorFlow 是可以和諧共處的。
  • 使用Keras構建具有自定義結構和層次圖卷積神經網絡(GCNN)
    :Keras中的圖卷積神經網絡(GCNN)。如何構建具有自定義結構和層次的神經網絡:Keras中的圖卷積神經網絡(GCNN)在生活中的某個時刻我們會發現,在Tensorflow Keras中預先定義的層已經不夠了!我們想要更多的層!我們想要建立一個具有創造性結構的自定義神經網絡!幸運的是,通過定義自定義層和模型,我們可以在Keras中輕鬆地執行此任務。在這個循序漸進的教程中,我們將構建一個包含並行層的神經網絡,其中包括一個圖卷積層。
  • TensorFlow開發者證書 中文手冊
    要獲得證書需要理解如何使用計算機視覺、卷積神經網絡、自然語言處理以及真實世界的圖像數據和策略來構建TensorFlow模型。使用 Conv2D和pooling層搭建卷積神經網絡搭建和訓練模型處理實際圖像數據理解如何使用卷積改善神經網絡使用不同維度和尺寸的實際圖像數據
  • 深度學習筆記7:Tensorflow入門
    作者:魯偉 一個數據科學踐行者的學習日記。
  • 圖像分類任務中,Tensorflow 與 Keras 到底哪個更厲害?
    您已經學會了如何使用Keras和tensorflow構建強大的分類器。但是,哪一個是最好的仍然是我們頭腦中的問題!因此,讓我們僅根據此分類任務進行比較研究。keras的全部訓練和測試代碼以及tensorflow的更改的腳本都可以在我的github中找到。
  • 一文上手Tensorflow2.0之tf.keras|三
    【磐創AI導讀】:本系列文章介紹了與tensorflow的相關知識,
  • 深度學習環境配置指南:Pytorch、TensorFlow、Keras
    導讀本文介紹了作者使用RTX3090進行深度學習環境配置pytorch、tensorflow、keras等的詳細過程及代碼。筆者中山大學研究生,醫學生+計科學生的集合體,機器學習愛好者。-7.2.1.4-cp36-none-linux_x86_64.whl tensorflow_estimator-1.15.1-py2.py3-none-any.whl nvidia_tensorboard-1.15.0+nv20.10-py3-none-any.whlnvidia_tensorflow-1.15.4+nv20.10-cp36-cp36m-linux_x86_64.whl -i http
  • 100天搞定機器學習|day39 Tensorflow Keras手寫數字識別
    TensorFlow 最初由Google大腦小組(隸屬於Google機器智能研究機構)的研究員和工程師們開發出來,用於機器學習和深度神經網絡方面的研究,但這個系統的通用性使其也可廣泛用於其他計算領域。1、安裝庫tensorflow有些教程會推薦安裝nightly,它適用於在一個全新的環境下進行TensorFlow的安裝,默認會把需要依賴的庫也一起裝上。
  • 基於Tensorflow\keras銀行卡識別
    :機器學習算法與Python精研 ,ID:AITop100】,經微信公眾號授權轉載,如需轉載原文作者聯繫來自:GitHub測試環境Ubuntu 18.04python 3.6.7numpy 1.16.4tensorflow-gpu
  • 使用tensorflow和Keras的初級教程
    https://www.kaggle.com/mlg-ulb/creditcardfraudimport tensorflow as tfprint(tf.__version__)import pandas as pdimport numpy as npfrom sklearn.model_selection import train_test_splitimport tensorflow as tffrom sklearn import preprocessingfrom tensorflow.keras.models import Sequentialfrom
  • Keras結合Keras後端搭建個性化神經網絡模型(不用原生Tensorflow)
    Keras是基於Tensorflow等底層張量處理庫的高級API庫。它幫我們實現了一系列經典的神經網絡層(全連接層、卷積層、循環層等),以及簡潔的迭代模型的接口,讓我們能在模型層面寫代碼,從而不用仔細考慮模型各層張量之間的數據流動。
  • Keras TensorFlow教程:如何從零開發一個複雜深度學習模型
    本文假設你已經熟悉了 TensorFlow 和卷積神經網絡,如果,你還沒有熟悉,那麼可以先看看這個[10分鐘入門 TensorFlow 教程](http://cv-tricks.com/artificial-intelligence/deep-learning/deep-learning-frameworks/tensorflow-tutorial/)和[卷積神經網絡教程](http://cv-tricks.com
  • 基於RTX2060構建TensorFlow-gpu(keras)學習平臺
    開始菜單運行anaconda navigator檢查是否安裝了notebook(默認有安裝)三、安裝tensorflow/keras在激活的環境中安裝:1. 如果機器上有gpu,則安裝gpu版本,沒有GPU就安裝cpu版。
  • TensorFlow 1.9 新增 tf.keras 官方入門教程(Keras與TF的深度集成)
    好消息是Keras的許多核心功能已經融入了原生的TensorFlow(tf.keras),TensorFlow 1.9新增tf.keras官方入門文檔,介紹了tf.keras的使用。這幾天打開TensorFlow的官方教程頁(https://www.tensorflow.org/tutorials/),會發現教程頁中給出的DEMO變成了基於tf.keras的教程。
  • RTX 3090 的深度學習環境配置指南:Pytorch、TensorFlow、Keras
    導讀本文介紹了作者使用RTX3090進行深度學習環境配置pytorch、tensorflow、keras等的詳細過程及代碼。筆者中山大學研究生,醫學生+計科學生的集合體,機器學習愛好者。-7.2.1.4-cp36-none-linux_x86_64.whl tensorflow_estimator-1.15.1-py2.py3-none-any.whl nvidia_tensorboard-1.15.0+nv20.10-py3-none-any.whlnvidia_tensorflow-1.15.4+nv20.10-cp36-cp36m-linux_x86_64.whl -i http
  • Python安裝TensorFlow 2、tf.keras和深度學習模型的定義
    首先,導入TensorFlow模塊並將其命名為「 tf 」;然後,通過調用tf.keras來訪問Keras API元素;例如:import tensorflow as tfmodel = tf.keras.Sequential()由於TensorFlow是Keras開源項目的事實上的標準後端
  • TensorFlow 2.1指南:keras模式、渴望模式和圖形模式(附代碼)
    Keras模式import numpy as npimport tensorflow as tffrom tensorflow import kerasfrom tensorflow.keras.layers import Input, Dense, Flatten, Conv2Dfrom tensorflow.keras
  • TensorFlow筆記:高級封裝—tf.Estimator
    ——keras和Estimator,本文主要介紹tf.Estimator的內容。tf.Estimator的特點是:既能在model_fn中靈活的搭建網絡結構,也不至於像原生tensorflow那樣複雜繁瑣。相比於原生tensorflow更便捷、相比與keras更靈活,屬於二者的中間態。實現一個tf.Estimator主要分三個部分:input_fn、model_fn、main三個函數。