MNIST3_tf2.keras訓練預測
針對MNIST資料集進行j基於tf2.keras的nn模型訓練和預測
部分指令碼如下: 完整指令碼見筆者github
import pandas as pd
import numpy as np
import tensorflow as tf
from tensorflow.keras import layers, Sequential, regularizers, Model
from utils.utils_tools import clock, get_ministdata
import warnings
warnings.filterwarnings(action='ignore')
class MyModel(Model):
def __init__(self):
super(MyModel, self).__init__()
self.fc0 = layers.Dense(256, activation='relu')
self.bn1 = layers.BatchNormalization()
self.fc1 = layers.Dense(32, activation='relu', kernel_regularizer = regularizers.l2(0.06))
self.bn2 = layers.BatchNormalization()
self.fc2 = layers.Dense(10, activation='sigmoid')
def call(self, inputs_, training=None):
x = self.fc0(inputs_)
x = self.bn1(x)
x = self.fc1(x)
x = self.bn2(x)
return self.fc2(x)
def build_nnmodel(input_shape=(None, 784)):
nnmodel = MyModel()
nnmodel.build(input_shape=input_shape)
nnmodel.compile(
loss='categorical_crossentropy',
optimizer = 'adam',
metrics = ['accuracy']
)
return nnmodel
if __name__ == '__main__':
mnistdf = get_ministdata()
te_index = mnistdf.sample(frac=0.75).index.tolist()
mnist_te = mnistdf.loc[te_index, :]
mnist_tr = mnistdf.loc[~mnistdf.index.isin(te_index), :]
mnist_tr_x, mnist_tr_y = mnist_tr.iloc[:, :-1].values, tf.keras.utils.to_categorical(mnist_tr.iloc[:, -1].values)
mnist_te_x, mnist_te_y = mnist_te.iloc[:, :-1].values, tf.keras.utils.to_categorical(mnist_te.iloc[:, -1].values)
nnmodel = build_nnmodel()
stop = tf.keras.callbacks.EarlyStopping(monitor = 'accuracy', min_delta=0.0001)
history = nnmodel.fit(mnist_tr_x, mnist_tr_y
,validation_data = (mnist_te_x, mnist_te_y)
,epochs=10
,callbacks = [stop])
acc_final = round(max(history.history['accuracy']), 2)
print(f"acc:{acc_final:.3f}")
predict_ = np.argmax(nnmodel.predict(mnist_te_x), axis=1)
te_y = np.argmax(mnist_te_y, axis=1)
print(predict_)
print(te_y)
print(f'auc: {sum(predict_ == te_y)/te_y.shape[0]:.3f}')
"""
14000/14000 [==============================] - 10s 741us/sample - loss: 0.1472 - accuracy: 0.9730 - val_loss: 0.2162 - val_accuracy: 0.9557
Epoch 9/10
13952/14000 [============================>.] - ETA: 0s - loss: 0.1520 - accuracy: 0.9720
Epoch 00009: accuracy did not improve from 0.97300
14000/14000 [==============================] - 23s 2ms/sample - loss: 0.1522 - accuracy: 0.9719 - val_loss: 0.2390 - val_accuracy: 0.9506
acc:0.970
[2 2 8 ... 7 6 6]
[2 2 8 ... 7 6 6]
auc: 0.951, cost: 170.946
"""
相關文章
- 【預訓練語言模型】 使用Transformers庫進行BERT預訓練模型ORM
- PyTorch預訓練Bert模型PyTorch模型
- 【預訓練語言模型】使用Transformers庫進行GPT2預訓練模型ORMGPT
- 自訓練 + 預訓練 = 更好的自然語言理解模型模型
- ResNet50的貓狗分類訓練及預測
- 預訓練模型 & Fine-tuning模型
- 【AI】Pytorch_預訓練模型AIPyTorch模型
- 採用線性迴歸實現訓練和預測(Python)Python
- Yolov5_v6.2訓練資料集進行預測YOLO
- Mxnet速查_CPU和GPU的mnist預測訓練_模型匯出_模型匯入再預測_匯出onnx並預測GPU模型
- Keras速查_CPU和GPU的mnist預測訓練_模型匯出_模型匯入再預測_匯出onnx並預測KerasGPU模型
- Bert: 雙向預訓練+微調
- 阿里巴巴開源大規模稀疏模型訓練/預測引擎DeepRec阿里模型
- TorchVision 預訓練模型進行推斷模型
- 模型訓練:資料預處理和預載入模型
- 新型大語言模型的預訓練與後訓練正規化,阿里Qwen模型阿里
- 模型訓練時間預測,計算量估計 Scaling Laws for Neural Language Models模型
- 常見預訓練語言模型簡述模型
- Findings | 中文預訓練語言模型回顧模型
- 知識增強的預訓練語言模型系列之ERNIE:如何為預訓練語言模型注入知識模型
- 完勝 BERT,谷歌最佳 NLP 預訓練模型開源,單卡訓練僅需 4 天谷歌模型
- 訓練一個目標檢測模型模型
- 劃分訓練集與測試集
- YOLOv5模型訓練及檢測YOLO模型
- 訓練集、驗證集、測試集
- ImageAI實現完整的流程:資料集構建、模型訓練、識別預測AI模型
- 大規模表格預訓練模型 SPACE-T模型
- NLP與深度學習(五)BERT預訓練模型深度學習模型
- 預訓練語言模型:還能走多遠?模型
- TensorFlow 呼叫預訓練好的模型—— Python 實現模型Python
- MxNet預訓練模型到Pytorch模型的轉換模型PyTorch
- keras中VGG19預訓練模型的使用Keras模型
- 原子、分子、複合物級性質預測均最佳,清華分子預訓練框架登Nature子刊框架
- Yolov5——訓練目標檢測模型YOLO模型
- 取出預訓練模型中間層的輸出(pytorch)模型PyTorch
- NLP領域預訓練模型的現狀及分析模型
- 「NLP」GPT:第一個引入Transformer的預訓練模型GPTORM模型
- 預訓練是AI未來所需要的全部嗎?AI