1.迭代次數對精確度的影響
程式碼環境:win10+anaconda2020.02+TensorFlow1.14.0+Keras2.2.5
原始碼如下
from __future__ import print_function
import numpy as np
from keras.callbacks import TensorBoard
from keras.models import Sequential
from keras.optimizers import Adam
from keras.layers import Dense, Dropout, Activation, Flatten
from keras.layers import Conv2D, MaxPool2D
from keras.utils import np_utils
from keras import backend as K
from keras.callbacks import ModelCheckpoint
from keras.datasets import cifar10
from keras.preprocessing.image import ImageDataGenerator
from keras.backend.tensorflow_backend import set_session
import tensorflow as tf
config = tf.ConfigProto()
config.gpu_options.allow_growth=True
set_session(tf.Session(config=config))
np.random.seed(42)
print("Initialized!")
#定義變數
batch_size = 512
nb_classes = 10
nb_epoch = 5000
img_rows, img_cols = 32, 32
nb_filters = [32, 32, 64, 64]
pool_size = (2,2)
kernel_size = (3, 3)
(X_train, y_train), (X_test, y_test) = cifar10.load_data() #通過這一語句可以將資料自動下載到C:\Users\dell.keras\datasets裡
X_train = X_train.astype("float32") / 255
X_test = X_test.astype("float32") / 255
y_train = y_train
y_test = y_test
input_shape = (img_rows, img_cols, 3)
Y_train = np_utils.to_categorical(y_train, nb_classes)
Y_test = np_utils.to_categorical(y_test, nb_classes)
#上游部分,基於生成器的批量生成輸入模組
datagen = ImageDataGenerator(
featurewise_center = False,
samplewise_center = False,
featurewise_std_normalization = False,
samplewise_std_normalization = False,
zca_whitening = False,
rotation_range = 0,
width_shift_range = 0.1,
height_shift_range = 0.1,
horizontal_flip = True,
vertical_flip = False)
datagen.fit(X_train)
#用各種零件搭建深度神經網路
model = Sequential()
model.add(Conv2D(nb_filters[0], kernel_size, padding = 'same',
input_shape = X_train.shape[1:]))
model.add(Activation('relu'))
model.add(Conv2D(nb_filters[1], kernel_size))
model.add(Activation('relu'))
model.add(MaxPool2D(pool_size = pool_size))
model.add(Dropout(0.25))
model.add(Conv2D(nb_filters[2], kernel_size, padding = 'same'))
model.add(Activation('relu'))
model.add(Conv2D(nb_filters[3], kernel_size))
model.add(Activation('relu'))
model.add(MaxPool2D(pool_size = pool_size))
model.add(Dropout(0.25))
model.add(Flatten())
model.add(Dense(512))
model.add(Activation('relu'))
model.add(Dropout(0.5))
model.add(Dense(nb_classes))
model.add(Activation('softmax'))
#下游部分,使用凸優化模組訓練模型
adam = Adam(lr=0.0001)
model.compile(loss = 'categorical_crossentropy',
optimizer=adam,
metrics=['accuracy'])
#最後開始訓練模型,並且評估模型的準確性
#訓練模型
best_model = ModelCheckpoint("cifar10_best.h5", monitor='val_loss', verbose=0, save_best_only=True)
tb = TensorBoard(log_dir="./logs")
model.fit_generator(datagen.flow(X_train, Y_train, batch_size=batch_size),
steps_per_epoch=X_train.shape[0] // batch_size,
epochs=nb_epoch, verbose=1,
validation_data=(X_test, Y_test), callbacks=[best_model,tb])
# 模型評分
score = model.evaluate(X_test, Y_test, verbose=0)
# 輸出結果
print('Test score:', score[0])
print("Accuracy: %.2f%%" % (score[1]*100))
print("Compiled!")
程式碼來自《深度學習技術影像處理入門》第八章。
迭代次數截圖
將近5000次左右的準確度情況:
迭代3000多次時準確度的情況
在300次左右,準確率就到達82%。
想要說明:
(1)在3000多次後,繼續迭代,準確度基本上到達87%這個瓶頸了,如果要想繼續提升精確度,就要從其他地方下手了。
(2)在300次後,為了提升精確度,提升迭代次數取得的效果很小。僅僅從82%提升到87%。但是迭代300次,和5000次的時間相差了很多。戰神筆記本rtx2060顯示卡,計算300次大約75分鐘左右。迭代5000次卻需要21個小時左右,時間上是很不划算的。
相關文章
- JVM 引數調整對 sortx 的影響JVM
- 抵制數豆子:除提交次數外的開源影響力
- 數字化轉型的影響是什麼?數字化轉型對企業的影響?
- Bailian2732 求自然常數e的近似值(精確到n)【迭代】AI
- kafka的至少一次和精確一次Kafka
- 樣本數量對問卷信度和效度分析的影響:一項關鍵因素
- OpenTelemetry agent 對 Spring Boot 應用的影響:一次 SPI 失效的Spring Boot
- 場景分析:遊戲關卡難度對玩家流失的影響遊戲
- Kafka之acks引數對訊息持久化的影響Kafka持久化
- Kafka 精確一次語義Kafka
- OpenTelemetry agent 對 Spring Boot 應用的影響:一次 SPI 失效的案例Spring Boot
- 語言對思維的影響
- Nologging對恢復的影響(一)
- unusable index對DML/QUERY的影響Index
- Nologging對恢復的影響(二)
- 影響測試進度因素
- 度量BGP監測源數量對AS可見性的影響
- 網線的分類與對網速的影響 網線對網速影響大嗎?
- 浮動的盒子對img的影響
- Strategy Analytics:品牌應對疫情的方式會影響消費者對品牌的好感度嗎?
- YouGov:44%的美國人不會受企業對LGBTQ的態度影響Go
- 瞭解 ignore_above 引數對 Elasticsearch 中磁碟使用的影響Elasticsearch
- MySQL:查詢欄位數量多少對查詢效率的影響MySql
- MySQL:slave_skip_errors引數對MGR可用性的影響MySqlError
- INDEX建立方式對SQL的影響IndexSQL
- 關於OPcache對Swoole影響的理解opcache
- 來電對播放音樂的影響
- python:super()對多繼承的影響Python繼承
- DB2 HADR對效能的影響DB2
- 影響精益生產成功落地的因素有哪些?
- 數字經濟對於製造業數字化轉型影響的思考
- 考察溫度x對產量y的影響,測得下列10組資料:
- IT職場:如何在DFMEA中確定失效的影響程度?
- 注意力2.0:品牌影響的可見度
- 【CURSOR】Oracle繫結變數、執行計劃對遊標的影響Oracle變數
- python中精確的浮點數運算Python
- 我所瞭解的 ChatGPT:二次開發;有何限制;對未來的影響ChatGPT
- windows server許可權對tomcat的影響WindowsServerTomcat