TensorFlow分布式訓練MNIST分類器

2021-03-05 客戶端編程

本節以分布式方式訓練完整的 MNIST 分類器。

該案例受到下面博客文章的啟發:http://ischlag.github.io/2016/06/12/async-distributed-tensorflow/,運行在 TensorFlow 1.2 上的代碼可以在網址https://github.com/ischlag/distributed-tensorflow-example上找到。

注意,這個案例基於上一節,所以按順序閱讀可能會很方便。

具體做法

導入一些標準模塊並定義運行計算的 TensorFlow 集群,然後為指定任務啟動服務:



 

讀取 MNIST 數據並定義用於訓練的超參數:



 

檢查角色是參數伺服器還是 worker,如果是 worker 就定義一個簡單的稠密神經網絡,定義一個優化器以及用於評估分類器的度量(例如精確度):



 

啟動一個監督器作為分布式設置的主機,主機是管理集群其餘部分的機器。會話由主機維護,關鍵指令是 sv=tf.train.Supervisor(is_chief=(FLAGS.task_index==0))。另外,通過 prepare_or_wait_for_session(server.target),監督器將等待模型投入使用。請注意,每個 worker 將處理不同的批量模型,然後將最終的模型提供給主機:


這個案例描述了一個分布式 MNIST 分類器的示例,在這個例子中,TensorFlow 允許定義一個三臺機器的集群,一個用作參數伺服器,另外兩個用作獨立批量訓練數據的 worker。

相關焦點

  • Tensorflow之 CNN卷積神經網絡的MNIST手寫數字識別
    (如需了解其他方面知識,可參閱以下Tensorflow系列文章)。TensorFlow是一個非常強大的用來做大規模數值計算的庫。其所擅長的任務之一就是實現以及訓練深度神經網絡。在本教程中,通過為MNIST構建一個深度卷積神經網絡的分類器,我們將學到構建一個TensorFlow模型的基本步驟。這個教程假設你已經熟悉神經網絡和MNIST數據集。
  • mnist tensorflow 預測專題及常見問題 - CSDN
    實驗大致步驟如下,加載MNIST數據集,同時初始化網絡超參; 建立計算圖; 建立Session會話,執行計算圖進行AlexNet模型訓練和結果預測(訓練模型和評估模型)。實現代碼如下, 1 #coding=utf-8 2 from __future__ import print_function 3 4 from tensorflow.examples.tutorials.mnist import input_data 5 mnist = input_data.read_data_sets("/
  • 從Fashion-Mnist開始,入門Tensorflow與深度學習
    在接下來的幾周中,我們將帶著大家學習深度學習中的常用網絡結構,我們用到的工具是Tensorflow。TensorFlow 是一個開源的、基於 Python 的機器學習框架,它由 Google 開發,並在圖形分類、音頻處理、推薦系統和自然語言處理等場景下有著豐富的應用,是目前最熱門的機器學習框架。
  • TensorFlow圖像分類教程
    本教程旨在把一個事先被放到訓練過的類別裡的圖片,通過運行一個命令以識別該圖像具體屬於哪個類別。步驟如下圖所示:標註:管理訓練數據。例如花卉,將雛菊的圖像放到「雛菊」目錄下,將玫瑰放到「玫瑰」目錄下等等,將儘可能多的不同種類的花朵按照類別不同放在不同的目錄下。如果我們不標註「蕨類植物」,那麼分類器永遠也不會返回「蕨類植物」。
  • TensorFlow 實現流行的機器學習算法的教程匯集
    開發和訓練一個深度神經網絡分類器。用於分類 MNIST 數據集的一種卷積神經網絡實現: https://github.com/tflearn/tflearn/blob/master/examples/images/convnet_mnist.py卷積網絡(CIFAR-10)。
  • 10 個TensorFlow 2.x 使用技巧
    >x_col參數定義圖像的完整路徑,而y_col參數定義用於分類的標籤列。import tensorflow_datasets as tfdsmnist_data = tfds.load("mnist")mnist_train, mnist_test = mnist_data["train"], mnist_data["test"]assert isinstance(mnist_train
  • TensorFlow極速入門
    最後給出了在 tensorflow 中建立一個機器學習模型步驟,並用一個手寫數字識別的例子進行演示。1、tensorflow是什麼?tensorflow 是 google 開源的機器學習工具,在2015年11月其實現正式開源,開源協議Apache 2.0。
  • 教程 | 使用MNIST數據集,在TensorFlow上實現基礎LSTM網絡
    from tensorflow.examples.tutorials.mnist import input_datamnist = input_data.read_data_sets("/tmp/data/", one_hot=True)MNIST 數據集MNIST 數據集包括手寫數字的圖像和對應的標籤
  • tensorflow極速入門
    最後給出了在 tensorflow 中建立一個機器學習模型步驟,並用一個手寫數字識別的例子進行演示。1、 tensorflow是什麼?tensorflow 是 google 開源的機器學習工具,在2015年11月其實現正式開源,開源協議Apache 2.0。下圖是 query 詞頻時序圖,從中可以看出 tensorflow 的火爆程度。
  • 深度學習筆記13:Tensorflow實戰之手寫mnist手寫數字識別
    個人公眾號:數據科學家養成記 (微信ID:louwill12)前文傳送門:深度學習筆記1:利用numpy從零搭建一個神經網絡深度學習筆記2:手寫一個單隱層的神經網絡深度學習筆記3:手動搭建深度神經網絡(DNN)深度學習筆記4:深度神經網絡的正則化深度學習筆記5:正則化與dropout深度
  • 0基礎深度學習必備程序,tensorflow實現mnist數據集訓練和測試
    本文使用tensorflow實現在mnist數據集上的圖片訓練和測試過程,使用了簡單的兩層神經網絡,代碼中涉及到的內容,均以備註的形式標出。直接上代碼:import tensorflow as tfimport numpy as np#引入input_mnistfrom tensorflow.examples.tutorials.mnist
  • 詳解與實戰TensorFlow MNIST手寫體數字識別(softmax and cnn)
    為了加速訓練,我們需要做數據規範化,將灰度值縮放為【0,1】的float32數據類型。下載和讀取MNIST數據集import tensorflow as tffrom tensorflow.examples.tutorials.mnist
  • 如何從Tensorflow中創建CNN,並在GPU上運行該模型(附代碼)
    >▍先決條件理解機器學習理解TensorflowAWS帳戶(用於gpu)▍卷積神經網絡卷積神經網絡是目前最先進的圖像分類架構。根據任務,可以應用回歸或分類算法來創建所需的輸出。回顧你現在已經了解了什麼構成卷積神經網絡。通過卷積輸入,您可以提取高維度特徵。匯總空間信息並降低維度。最後,該特徵表示通過完全連接的層傳遞到分類器或回歸器。
  • GitHub趨勢榜第一:TensorFlow+PyTorch深度學習資源大匯總
    感知器TensorFlow 1:https://github.com/rasbt/deeplearning-models/blob/master/tensorflow1_ipynb/basic-ml/perceptron.ipynbPyTorch:https://github.com/rasbt/
  • 教程| 沒有博士學位,照樣玩轉TensorFlow深度學習
    本項目的原文可參閱:https://codelabs.developers.google.com/codelabs/cloud-tensorflow-mnist/#131、概述在 codelab 項目中,你將學習如何構建並訓練出能夠識別手寫數字的神經網絡。
  • 圖像分類入門,輕鬆拿下90%準確率 | 教你用Keras搞定Fashion-MNIST
    只需幾行代碼,就可以定義和訓練模型,甚至不需要太多優化,在該數據集上的分類準確率能輕鬆超過90%。pip install -q -U tensorflow>=1.8.03import tensorflow as tf4import numpy as np5import matplotlib.pyplot as plt67(x_train, y_train), (x_test, y_test) = tf.keras.datasets.fashion_mnist.load_data
  • 圖像分類入門,輕鬆拿下90%準確率|教你用Keras搞Fashion-MNIST
    只需幾行代碼,就可以定義和訓練模型,甚至不需要太多優化,在該數據集上的分類準確率能輕鬆超過90%。最後一層為分類層,使用Softmax函數來分類這10種數據。模型編譯在訓練模型前,我們用model.compile函數來配置學習過程。在這裡,要選擇損失函數、優化器和訓練測試時的評估指標。
  • 淺顯易懂的分布式TensorFlow入門教程
    本文是一篇淺顯易懂的分布式TensorFlow入門教程,可以讓你對分布式TensorFlow的原理和使用有一定的了解。1.https://github.com/tensorflow/tensorflow/blob/r1.3/tensorflow/python/training/monitored_session.py作者 | Tutorials by Malo Marrec 編譯 | 專知整理 | HujunHow
  • 以MNIST數據集用tensorflow寫個lenet-5卷積神經網絡
    # -*- coding: utf-8 -*-import matplotlib.pyplot as pltimport numpy as npimport tensorflow as tffrom tensorflow.contrib.learn.python.learn.datasets.mnist import read_data_sets
  • 圖像分類任務中,Tensorflow 與 Keras 到底哪個更厲害?
    讓我們看看這個問題在圖像分類的實際應用中的答案。在此之前,先介紹Keras和Tensorflow這兩個術語,幫助你在10分鐘內構建強大的圖像分類器。TensorflowTensorflow是開發深度學習模型最常用的庫。它是有史以來最好的庫,在日常實驗中被許多極客選擇。