Tensorflow入門系列(三)--官方新手教程詳解
官方教程詳解
Part 1 –資料集無法下載
在命令列模式下執行 python premade_estimator.py
時會遇到報錯,錯誤原因是資料集無法下載。在iris_data.py
這個檔案下,我們可以看到通過tf.keras.utils.get_file
這個函式將資料集從”http://download.tensorflow.org/data/iris_training.csv“中拷貝過來。但由於無法訪問該網址,因此會出現報錯。解決辦法:通過其他途徑將iris的資料集(150條資料)下載,然後拆分為訓練集(120條資料)和驗證集(30條資料)。iris_data.py
檔案的程式改動如下:
def maybe_download():
#train_path = tf.keras.utils.get_file(TRAIN_URL.split('/')[-1], TRAIN_URL)
#test_path = tf.keras.utils.get_file(TEST_URL.split('/')[-1], TEST_URL)
train_path='/Users/stuyu/Desktop/Iris_dataset/iris_train.csv'
test_path='/Users/stuyu/Desktop/Iris_dataset/iris_test.csv'
return train_path, test_path
Part 2 –命令列解析模組
在程式的開端premade_estimator.py
檔案下,我們可以看到:
parser = argparse.ArgumentParser()
parser.add_argument('--batch_size', default=100, type=int, help='batch size')
parser.add_argument('--train_steps', default=1000, type=int,
help='number of training steps' )
這一段程式碼是命令列解析程式,在命令列執行該python檔案時,我們可以通過加入–batch_size 和 –train_steps 來改變batch_size和train_step。
詳情請見https://www.cnblogs.com/yymn/p/8056487.html
Part 3 –特徵編碼
當程式繼續執行時,會遇到報錯
Traceback (most recent call last):
File "/Users/stuyu/Documents/PythonCode/tf-slim/models/samples/core/get_started/premade_estimator.py", line 118, in <module>
tf.app.run(main)
File "/Users/stuyu/anaconda3/lib/python3.6/site-packages/tensorflow/python/platform/app.py", line 126, in run
_sys.exit(main(argv))
File "/Users/stuyu/Documents/PythonCode/tf-slim/models/samples/core/get_started/premade_estimator.py", line 71, in main
steps=args.train_steps)
File "/Users/stuyu/anaconda3/lib/python3.6/site-packages/tensorflow/python/estimator/estimator.py", line 363, in train
loss = self._train_model(input_fn, hooks, saving_listeners)
File "/Users/stuyu/anaconda3/lib/python3.6/site-packages/tensorflow/python/estimator/estimator.py", line 843, in _train_model
return self._train_model_default(input_fn, hooks, saving_listeners)
File "/Users/stuyu/anaconda3/lib/python3.6/site-packages/tensorflow/python/estimator/estimator.py", line 856, in _train_model_default
features, labels, model_fn_lib.ModeKeys.TRAIN, self.config)
File "/Users/stuyu/anaconda3/lib/python3.6/site-packages/tensorflow/python/estimator/estimator.py", line 831, in _call_model_fn
model_fn_results = self._model_fn(features=features, **kwargs)
File "/Users/stuyu/anaconda3/lib/python3.6/site-packages/tensorflow/python/estimator/canned/dnn.py", line 347, in _model_fn
config=config)
File "/Users/stuyu/anaconda3/lib/python3.6/site-packages/tensorflow/python/estimator/canned/dnn.py", line 190, in _dnn_model_fn
logits=logits)
File "/Users/stuyu/anaconda3/lib/python3.6/site-packages/tensorflow/python/estimator/canned/head.py", line 771, in create_estimator_spec
features=features, mode=mode, logits=logits, labels=labels)
File "/Users/stuyu/anaconda3/lib/python3.6/site-packages/tensorflow/python/estimator/canned/head.py", line 682, in create_loss
label_ids = self._label_ids(labels)
File "/Users/stuyu/anaconda3/lib/python3.6/site-packages/tensorflow/python/estimator/canned/head.py", line 665, in _label_ids
format(labels.dtype))
ValueError: Labels dtype should be integer. Instead got <dtype: 'string'>.
報錯的最後一行提示我們Label應該為整數型,而不應該為字串。檢視資料,我們可以看到label基本是’Setosa’, ‘Versicolor’, ‘Virginica’。需要轉變成整數型。因此我們要用到sklearn庫裡的preprocessing.LabelEncoder。
#iris_data.py
from sklearn.preprocessing import LabelEncoder
...
def load_data(y_name='Species'):
...
labelEncoder=LabelEncoder()
train_y=labelEncoder.fit_transform(train_y)
test_y=labelEncoder.fit_transform(test_y)
return (train_x, train_y), (test_x, test_y)
由於資料集中是’Setosa’, ‘Versicolor’, ‘Virginica’依次排列的,故分別對應0,1,2。恰好和下面程式對應上了(內心一陣竊喜)。
#premade_estimator.py
# Generate predictions from the model
expected = ['Setosa', 'Versicolor', 'Virginica']
此時,再次執行命令便可以成功運行了。
相關推薦
Tensorflow入門系列(三)--官方新手教程詳解
官方教程詳解 Part 1 –資料集無法下載 在命令列模式下執行 python premade_estimator.py時會遇到報錯,錯誤原因是資料集無法下載。在iris_data.py這個檔案下,我們可以看到通過tf.keras.utils.g
Vue入門系列(五)Vue實例詳解與生命周期
auto res context mode parent all from bool silent 【入門系列】 【本文轉自】 http://www.cnblogs.com/fly_dragon Vue的實例是Vue框架的入口,其實也就是前端的ViewM
Ambari系列(三): Ambari架構詳解
前言 Hadoop叢集的管控一直是一個熱門的話題,對於這樣的一個應用場景,我所知道國內很早就有人研究並且取得不錯的成績,這就是EasyHadoop。它的功能主要有叢集安裝,管理,監控等功能,有興趣的朋友可以百度,這位作者的部落格有很詳細的介紹。今天,我所要重點介紹的Apac
Flutter入門系列(三)---攜程Flutter實踐
文件來源:攜程技術中心 Flutter已經開源了三年,但是最近兩年才開始在開源社群活躍起來,尤其是最近還發布了Preview 1版本。作為可以實現一套程式碼同時在iOS、Android平臺上執行的又一個新的UI框架,Flutter提供給開發者的不僅僅是高速實現,還有高質量、流暢的UI。免費開源的
爬蟲入門系列(三):用 requests 構建知乎 API
爬蟲入門系列目錄: 在爬蟲系列文章 優雅的HTTP庫requests 中介紹了 requests 的使用方式,這一次我們用 requests 構建一個知乎 API,功能包括:私信傳送、文章點贊、使用者關注等,因為任何涉及使用者操作的功能都需要登入後才操作,所以在閱讀這篇文章前建議先了解
CSS入門系列(三)關聯選擇器&組合選擇器
CSS入門系列(三)關聯選擇器&組合選擇器 目錄 1. 關聯選擇器 定義是:選擇器中的選擇器。假設如下: <div>這個<b>一個</b>div</div> <span>這
MongoDB入門系列(三):查詢(SELECT)
一、概述 mongodb是最接近關係型資料庫的NOSQL資料庫,它的儲存方式非常的靈活;以至於你會將它看成是一個經過冗餘過的關係型資料庫的表,這也是Mongodb原子性的一個特徵。由於沒有關係型資料庫的表之間的關聯關係和事務性所以Mongodb插入和更新的效率非常的高,同時也支援索引。我們在查詢的時候不能帶
Docker快速入門系列(三)——CentOS-7.5下使用yum命令快速安裝Docker CE
《 CentOs-7.5下安裝Docker CE 》 先決條件 在安裝Docker CE前,CentOS 系統版本應該升級到64位版本的 CentOS 7或以上,在這兒
tensorFlow入門實踐(三)初識AlexNet實現結構
參數 variable alexnet with col 展望 port kernel 兩個 參考黃文堅《TensorFlow實戰》一書,完成AlexNet的整體實現並展望其訓練和預測過程。 import tensorflow as tf batch_size = 32
TensorFlow學習系列(三):儲存/恢復和混合多個模型
這篇教程是翻譯Morgan寫的TensorFlow教程,作者已經授權翻譯,這是原文。 目錄 在學習這篇部落格之前,我希望你已經掌握了Tensorflow基本的操作。如果沒有,你可以閱讀這篇入門文章。 為什麼要
SpringBoot入門系列(三)---檢視解析
SpirngBoot – html 靜態訪問 springboot 預設靜態資源路徑 src/main/resource/static 在static下新增 a.html <
GDI+入門系列(三)——字型
using System.Drawing; using System.Drawing.Drawing2D; using System.Drawing.Text; private void button1_Click(object sender, EventA
Tensorflow入門系列(四)--tutorials/image/mnist程式詳解
mnist官方程式詳解 在之前的文章中,我們在github上clone了TensorFlow/model這一個專案,這一次讓我們一起來看一下其下tutorials/image/mnist的程式。 首先,讓我們從程式的起始點開始看起。 parser =
SpringBoot入門系列(三)資原始檔屬性配置
前面介紹了Spring的@Controller和@RestController控制器, 他們是如何響應客戶端請求,如何返回json資料。不清楚的朋友可以看看之前的文章:https://www.cnblogs.com/zhangweizhong/category/1657780.html。 今天來說一說Spri
java加密算法入門(三)-非對稱加密詳解
共享數據 net clas 實例 查看 安全性 自己的 generator mir 1、簡單介紹 這幾天一直在看非對稱的加密,相比之前的兩篇內容,這次看了兩倍多的時間還雲裏霧裏的,所以這篇文章相對之前的兩篇,概念性的東西多了些,另外是代碼的每一步我都做了介紹,方便自己以後
機器人作業系統ROS教程(三) ROS新手教程
前面我們介紹了ROS的特點和結構,接下來就要開始準備動手感受一下ROS的強大了。ROS官網的wiki上針對 新手的教程很詳細,最好把所有的新手教程都搞清楚,這是後面開發最基礎的東西。儘管如此,ROS對於新手 來說還是很難上手,這裡,我就來總結一下我當時學習的歷程,也為其他新
緩沖區溢出實戰教程系列(三):利用OllyDbg了解程序運行機制
成了 代碼段 下界 urn 方便 htm oca 相差 14. 想要進行緩沖區溢出的分析與利用,當然就要懂得程序運行的機制。今天我們就用動態分析神器ollydbg來了解一下在windows下程序是如何運行的。 戳這裏看之前發布的文章: 緩沖區溢出實戰教程系列(一):
深入淺出javaEE系列(一)---web.xml配置詳解
web.xml是web專案最重要的一個檔案 一:定義頭和根元素 <?xml version="1.0" encoding="UTF-8"?> 部署描述符檔案就像所有xml檔案一樣,必須以一個xml頭開始。這個頭宣告必
視覺SLAM十四講(三)——A星演算法詳解
點開全文 點開全文 點開全文 A* 尋路演算法 原文地址: http://www.gamedev.net/reference/articles/art
Redis學習(三) Redis 主從模式詳解
不管任何程式,只執行一個例項都是不可靠的,一旦因為網路原因導致所在機器不可達,或者所在伺服器掛掉,那麼這個程式將不能對外提供服務了,Redis也是一樣的。不過Redis的主從並不是解決這個問題的,一些對Redis主從的理解,見這篇部落格:http://www.cnblogs.com/yiwangzh