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

2021-02-20 阿皮的筆記

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 極簡神經網絡構建與使用
    keras極簡神經網絡構建教程Keras介紹Keras (κέρας) 在希臘語中意為號角,它來自古希臘和拉丁文學中的一個文學形象。發布於2015年,是一套高級API框架,其默認的backend是tensorflow,但是可以支持CNTK、Theano、MXNet作為backend運行。其特點是語法簡單,容易上手,提供了大量的實驗數據接口與預訓練網絡接口,最初是谷歌的一位工程師開發的,非常適合快速開發。
  • 用TensorFlow和Keras構建卷積神經網絡
    本文主要介紹如何在Python中使用TensorFlow和Keras構建卷積神經網絡。 卷積神經網絡是過去十年中深度學習成為一大熱點的部分原因。今天將使用TensorFlow的eager API來訓練圖像分類器,以辨別圖像內容是狗還是貓。人工神經網絡在許多領域都展現出了其強大功能,最近已經應用到很多行業中。
  • Tensorflow.keras筆記-識別Sci-hub驗證碼
    Tensorflow.keras筆記卷積神經網絡識別Sci-hub驗證碼使用requests庫和selenium
  • TensorFlowNews五大經典卷積神經網絡介紹:LeNet / AlexNet / GoogLeNet / VGGNet/
    最常見的是:卷積神經網絡的第一批成功應用,是由 Yann LeCun 在 20 世紀 90 年代開發的。其中最著名的是用於識別郵政編碼,數字等的LeNet架構。首先讓卷積神經網絡在計算機視覺中流行的是由 Alex Krizhevsky,Ilya Sutskever 和 Geoff Hinton 開發的 AlexNet。
  • 深度學習筆記7:Tensorflow入門
    作者:魯偉 一個數據科學踐行者的學習日記。
  • Keras,TensorFlow 的高級 API
    您可以構建新層、指標和損失函數,還可以開發頂尖模型Keras:快速概覽 指南會幫助您入門(https://www.tensorflow.org/alpha/guide/keras/overview)。如需適合初學者的 tf.keras 機器學習簡介,請參閱此 入門教程集(https://www.tensorflow.org/tutorials/keras)。
  • 記一次裝好 Keras 和 TensorFlow(CPU版)
    然後回到 Jupyter 的命令行,運行從 keras 導入數據集的命令報錯,提示要求 pip install tensorflow。2  按照提示 在命令窗口:於是隨手百度了幾個,直接在命令後加上 -i xxx(鏡像網站):pip install tensorflow -i http://mirrors.aliyun.com/pypi/simple/先試了阿里的鏡像,又來了錯誤提示:
  • TensorFlow官方最新tf.keras指南:面向對象構建深度網絡
    本指南的內容大致如下:Keras Functional API訓練和評價利用繼承構建層和模型保存和序列化模型指南地址:https://www.tensorflow.org/alpha/guide/keras/functional內容概要:Keras中網絡層的定義和調用,例如如何用指定的參數來定義一個全連接層,然後用定義的層來變換輸入數據。
  • 在瀏覽器中使用Keras MobileNet模型以及Tensorflow.js進行圖片分類
    與其他最先進的卷積神經網絡,如:VGG16、vg19、ResNet50、InceptionV3和exception等相比,MobileNet具有許多優勢。•MobileNets是最適合移動和嵌入式視覺應用的輕量級深層神經網絡。•mobilenet基於一種流線型架構,使用深度方向的可分離卷積。
  • 100天搞定機器學習|day40-42 Tensorflow Keras識別貓狗
    import tensorflow as tffrom tensorflow.keras.datasets import cifar10from tensorflow.keras.preprocessing.image import ImageDataGeneratorfrom tensorflow.keras.models import Sequential
  • 一文上手Tensorflow2.0之tf.keras|三
    【磐創AI導讀】:本系列文章介紹了與tensorflow的相關知識,
  • Keras VS TensorFlow 哪家強?
    我們將使用標準的 keras 模塊以及 TensorFlow 的 tf.keras 模塊實現一個卷積神經網絡(CNN)。我們將在一個樣本數據集上訓練 CNN,然後檢查結果——你會發現,Keras 和 TensorFlow 可以很融洽地合作。最重要的是,你將會了解為什麼 Keras 與 TensorFlow 之間的爭論其實是沒有意義的。
  • 圖像分類任務中,Tensorflow 與 Keras 到底哪個更厲害?
    您已經學會了如何使用Keras和tensorflow構建強大的分類器。但是,哪一個是最好的仍然是我們頭腦中的問題!因此,讓我們僅根據此分類任務進行比較研究。keras的全部訓練和測試代碼以及tensorflow的更改的腳本都可以在我的github中找到。
  • Keras vs tf.keras: 在TensorFlow 2.0中有什麼區別?
    TensorFlow v1.10.0中引入了tf.keras子模塊,這是將Keras直接集成在TensorFlow包本身中的第一步。tf.keras軟體包與您將要通過pip安裝的keras軟體包分開(即pip install keras)。原始的keras軟體包不包含在tensorflow中以確保兼容性,因此它們都可以有機地發展。
  • 使用Keras API在TensorFlow中構建神經網絡的3種方法
    只需運行以下代碼: import tensorflow as tf from tensorflow.keras.models Sequential from tensorflow.keras.layers Flatten, Dense from tensorflow.keras import Input
  • TensorFlow 2.0 中的 tf.keras 和 Keras 有何區別?為什麼以後一定要用 tf.keras?
    tf.keras 是在 TensorFlow v1.10.0 中引入的,這是將 keras 直接集成到 TensorFlow 包中的第一步。tf.keras 軟體包與你通過 pip 安裝的 keras 軟體包(即 pip install keras)是分開的,過去是這樣,現在也是。為了確保兼容性,原始的 keras 包沒有被包含在 tensorflow 中,因此它們的開發都很有序。
  • 使用TensorFlow的經驗分享
    目前下載的Anaconda自帶python為3.8,通過conda下載tensorflow2.3.0後可能無法使用gpu訓練,除非自己使用pip下載tensorflow與CUDA,建議虛環境使用python3.7,tensorflow使用tensorflow2.1.0。3.
  • TensorFlow 資源大全中文版
    模型/工程圖片形態轉換 – 無監督圖片形態轉換的實現Show, Attend and Tell算法 -基於聚焦機制的自動圖像生成器Neural Style – Neural Style 算法的TensorFlow實現Pretty Tensor – Pretty Tensor提供了高級別的TensorFlow封裝接口Neural Style
  • 【AI學習篇】Keras+Tensorflow: GPU加速環境搭建與測試
    本文薈薈帶領大家一起配置好gpu加速的tensorflow環境,並使用smallvggnet這一典型的深度卷積神經網絡對環境進行測試。雖然Windows也能配置這一環境,考慮將來的可擴展性,我們還是選擇了ubuntu 16.04進行安裝測試。
  • 【TensorFlow實戰筆記】 遷移學習實戰--卷積神經網絡CNN-Inception-v3模型
    2.說白了就是別人已經訓練好的強大的模型,你不需要去浪費時間訓練,直接拿過來用,雖然這樣最後的acc(準確率)可能會稍微低一些,但是可以節省大量的時間,還是非常划算的幾個須知的基本概念1.Inception-v3模型 是一個 卷積神經網絡(CNN)模型  (因為最近一直在忙著學,過一段時間會把經典的神經網絡和