使用tf.estimator.Estimator訓練神經網路
參考: https://github.com/aymericdamien/TensorFlow-Examples/
from __future__ import print_function from tensorflow.examples.tutorials.mnist import input_data
mnist=input_data.read_data_sets("/data/machine_learning/mnist/",one_hot=False) print(mnist.train.labels.shape)
import tensorflow as tf
#引數設定 learning_rate=0.1 #學習率 num_steps=1000 #迭代次數 batch_size=128 #批處理大小 display_step=100 #輸出間隔
#網路引數 n_hidden_1=256 #第一個隱藏層神經元 n_hidden_2=256 #第二個隱藏層神經元 num_input=784 #28*28 num_classes=10 #標籤類別 |
#定義網路結構 def neural_net(x_dict): x=x_dict['images'] layer_1=tf.layers.dense(x,n_hidden_1) #全連線層 layer_2=tf.layers.dense(layer_1,n_hidden_2) #全連線層 out_layer=tf.layers.dense(layer_2,num_classes) #全連線層,輸出層 return out_layer |
def model_fn(features,labels,mode): logits=neural_net(features) #輸出
#預測 pred_classes=tf.argmax(logits,axis=1) pred_probas=tf.nn.softmax(logits)
if mode==tf.estimator.ModeKeys.PREDICT: return tf.estimator.EstimatorSpec(mode,predictions=pred_classes)
#定義損失和優化函式 loss_op=tf.reduce_mean(tf.nn.sparse_softmax_cross_entropy_with_logits(logits=logits,labels=tf.cast(labels,dtype=tf.int32))) optimizer=tf.train.GradientDescentOptimizer(learning_rate=learning_rate) #梯度下降優化器 train_op=optimizer.minimize(loss_op,global_step=tf.train.get_global_step()) #最小化損失
acc_op=tf.metrics.accuracy(labels=labels,predictions=pred_classes) #精度
estim_specs=tf.estimator.EstimatorSpec(mode=mode,predictions=pred_classes,loss=loss_op,train_op=train_op,eval_metric_ops={'accuracy':acc_op}) return estim_specs |
model=tf.estimator.Estimator(model_fn)
input_fn=tf.estimator.inputs.numpy_input_fn(x={'images':mnist.train.images},y=mnist.train.labels,batch_size=batch_size,num_epochs=None,shuffle=True)
model.train(input_fn,steps=num_steps)
input_fn=tf.estimator.inputs.numpy_input_fn(x={'images':mnist.test.images},y=mnist.test.labels,batch_size=batch_size,shuffle=False)
e=model.evaluate(input_fn) print("測試精度:",e['accuracy']) |
相關文章
- 3.3 神經網路的訓練神經網路
- 訓練自己的Android TensorFlow神經網路Android神經網路
- 從零開始:教你如何訓練神經網路神經網路
- 訓練神經網路時如何確定batch size?神經網路BAT
- umich cv-5-1 神經網路訓練1神經網路
- umich cv-5-2 神經網路訓練2神經網路
- 用神經網路測量訓練集的半衰期神經網路
- 如何應對訓練的神經網路不工作?神經網路
- Batch Normalization: 如何更快地訓練深度神經網路BATORM神經網路
- 在Python中使用OpenCV訓練神經網路來檢測手勢!PythonOpenCV神經網路
- 使用人工神經網路訓練手寫數字識別模型神經網路模型
- 機器學習之訓練神經網路:最佳做法機器學習神經網路
- 【python實現卷積神經網路】開始訓練Python卷積神經網路
- 如何入門Pytorch之四:搭建神經網路訓練MNISTPyTorch神經網路
- 迴圈神經網路設計同樣可以使用預訓練詞“嵌入”神經網路
- 神經網路之反向傳播訓練(8行程式碼)神經網路反向傳播行程
- 神經網路訓練的三個基本概念Epoch, Batch, Iteration神經網路BAT
- 深度學習與CV教程(6) | 神經網路訓練技巧 (上)深度學習神經網路
- 迴圈神經網路之embedding,padding,模型構建與訓練神經網路padding模型
- 送你9個快速使用Pytorch訓練解決神經網路的技巧(附程式碼)PyTorch神經網路
- 面向統一的AI神經網路架構和預訓練方法AI神經網路架構
- 關於訓練神經網路的諸多技巧Tricks(完全總結版)神經網路
- 想免費用谷歌資源訓練神經網路?Colab 詳細使用教程 —— Jinkey 原創谷歌神經網路
- 使用 PyTorch 構建和訓練一個卷積神經網路進行影像分類任務PyTorch卷積神經網路
- 深度神經網路的分散式訓練概述:常用方法和技巧全面總結神經網路分散式
- 谷歌開源Neural Tangents:簡單快速訓練無限寬度神經網路谷歌神經網路
- composer:2-4倍加速神經網路訓練的演算法庫神經網路演算法
- 神經網路:numpy實現神經網路框架神經網路框架
- 谷歌力作:神經網路訓練中的Batch依賴性很煩?那就消了它!谷歌神經網路BAT
- 神經網路神經網路
- ICLR 2024 Oral|用巧妙的「傳送」技巧,讓神經網路的訓練更加高效ICLR神經網路
- 零基礎入門深度學習(一):用numpy實現神經網路訓練深度學習神經網路
- 【機器學習】李宏毅——類神經網路訓練不起來怎麼辦機器學習神經網路
- 節省視訊記憶體新思路,在 PyTorch 裡使用 2 bit 啟用壓縮訓練神經網路記憶體PyTorch神經網路
- LSTM神經網路神經網路
- 8、神經網路神經網路
- Yelp訓練了一個神經網路來debug,然後就被這個AI刪庫了神經網路AI
- 當前訓練神經網路最快的方式:AdamW優化演算法+超級收斂神經網路優化演算法