CIFAR10+卷積神經網絡+TensorBoard 實戰

1、CIFAR-10數據集的簡介

CIFAR10+卷積神經網絡+TensorBoard 實戰

CIFAR-10

cifar10是由Hinton的學生整理的一個用於識別物體的小型數據集,一共包含10個類別的RGB彩色數據圖片,如上圖所示。圖片的尺寸為32X32,共50000張訓練圖片和10000張測試圖片。

項目代碼:

CIFAR10+卷積神經網絡+TensorBoard 實戰

Tensorflow提供的一些代碼

使用cifar10_download.py即可下載CIFAR-10數據集的全部數據

2、直接上代碼

(1)導入相關包

(2)定義函數

CIFAR10+卷積神經網絡+TensorBoard 實戰

導入數據包,設置模型參數

CIFAR10+卷積神經網絡+TensorBoard 實戰

權重函數

CIFAR10+卷積神經網絡+TensorBoard 實戰

定義損失函數

CIFAR10+卷積神經網絡+TensorBoard 實戰

TensorBoard參數概要

CIFAR10+卷積神經網絡+TensorBoard 實戰

抽取訓練數據集,cifar10_input.distorted_inputs這個很容易出現bug,cifar10_input的disto...定義不同

CIFAR10+卷積神經網絡+TensorBoard 實戰

定義輸入placeholder

CIFAR10+卷積神經網絡+TensorBoard 實戰

第一層卷積層,3*3的卷積核,通道數為3,卷積核個數32

CIFAR10+卷積神經網絡+TensorBoard 實戰

CIFAR10+卷積神經網絡+TensorBoard 實戰

CIFAR10+卷積神經網絡+TensorBoard 實戰

以上是我隨便定義的幾個卷積層、池化層等,一般來說數據量多的前提下,網絡層數越多,準確度越高

CIFAR10+卷積神經網絡+TensorBoard 實戰

全連接層,使用了dropout操作

CIFAR10+卷積神經網絡+TensorBoard 實戰

CIFAR10+卷積神經網絡+TensorBoard 實戰

定義優化器,tf.nn.in_top_k主要是用於計算預測的結果和實際結果的是否相等,返回一個bool類型的張量

CIFAR10+卷積神經網絡+TensorBoard 實戰

創建圖,開始訓練

CIFAR10+卷積神經網絡+TensorBoard 實戰

CIFAR10+卷積神經網絡+TensorBoard 實戰

結果比較簡單,只是隨便的簡單堆疊幾層卷積層和全連接層

很多小夥伴說現在tf2.0都出來了,還需不需要學1.x,我的答案是要,現在絕大部分的科研、公司項目代碼還是1.x,而且2.0大部分是採用keras接口,學會1.x後再看2.0也是非常簡單的。過幾天有空,會嘗試使用tf2.0來搭建一個更復雜的網絡,tf2.0使用大量keras接口,實現比較方便。


分享到:


相關文章: