詳解Python使用tensorflow入門指南
TensorFlow是Google公司2015年11月開源的第二代深度學(xué)習(xí)框架,是第一代框架DistBelief的改進(jìn)版本.
TensorFlow支持python和c/c++語言, 可以在cpu或gpu上進(jìn)行運(yùn)算, 支持使用virtualenv或docker打包發(fā)布.
定義變量
為了使用tensorflow,首先我們需要導(dǎo)入它
import tensorflow as tf
對于符號變量,我們新建一個
x = tf.placeholder(tf.float32, [None, 784])
這里x并不是一個特定的值,只是一個占位符,后面我們需要用tensorflow進(jìn)行計(jì)算式,我們會把它作為輸入
在模型中,我們需要weights權(quán)重和biases偏置,這里就用Variable來處理定義,Variable可以在整個計(jì)算過程中modified
w = tf.Variable(tf.zeros([784, 10])) b = tf.Variable(tf.zeros([10]))
在新建Variable的同時,我們也初始化了它,然后
y = tf.nn.softmax(tf.matmul(x, w) + b)
這樣我們就成功的實(shí)現(xiàn)了我們的模型
訓(xùn)練
我們用cross-entropy作為我們的cost function
H_{y'}(y) = -\sum_i y'_i \log(y_i)
y就是我們預(yù)測的概率分布,y'是真實(shí)的概率分布
為了實(shí)現(xiàn)交叉熵,我們需要一個新的占位符來作為正確答案的輸入
y_ = tf.placeholder(tf.float32, [None, 10]) cross_entropy = -tf.reducen_sum(y_ * tf.log(y))
通過梯度下降來實(shí)現(xiàn)優(yōu)化模型
train_step = tf.train.GradientDescentOptimizer(learning_rate).minimize(cross_entropy)
我們使用這個模型之前,最后一件我們需要做的事是
init = tf.initialize_all_variables() with tf.Session() as sess: sess.run(init)
現(xiàn)在,我能可以訓(xùn)練1000次這個模型了,☺️
for i in xrange(1000): batch_xs, batch_ys = mnist.train.next_batch(100) sess.run(train_step, feed_dict = {x: batch_xs, y_: batch_ys})
使用隨機(jī)數(shù)據(jù)的小batch就稱為隨機(jī)訓(xùn)練
模型評分
首先,我們對比真實(shí)的y_和模型所得y之間正確的個數(shù)有多少
correct_prediction = tf.equal(tf.argmax(y, 1), tf.agrmax(y_, 1))
這個會返回一個boolean列表,比如[True, False, True, True]
accuracy = tf.reduce_mean(tf.cast(correc_prediction, tf.float32)) print (sess.run(accuracy, feed_dict = {x: mnist.test.images, y_: minst.test.labels}))
最后就通過以上計(jì)算得到準(zhǔn)確率
開始使用
TensorFlow并不是一個純粹的神經(jīng)網(wǎng)絡(luò)框架, 而是使用數(shù)據(jù)流圖進(jìn)行數(shù)值分析的框架.
TensorFlow使用有向圖(graph)表示一個計(jì)算任務(wù).圖的節(jié)點(diǎn)稱為ops(operations)表示對數(shù)據(jù)的處理,圖的邊f(xié)low 描述數(shù)據(jù)的流向.
該框架計(jì)算過程就是處理tensor組成的流. 這也是TensorFlow名稱的來源.
TensorFlow使用tensor表示數(shù)據(jù). tensor意為張量即高維數(shù)組,在python中使用numpy.ndarray表示.
TensorFlow使用Session執(zhí)行圖, 使用Variable維護(hù)狀態(tài).tf.constant是只能輸出的ops, 常用作數(shù)據(jù)源.
下面我們構(gòu)建一個只有兩個constant做輸入, 然后進(jìn)行矩陣乘的簡單圖:
from tensorflow import Session, device, constant, matmul '''構(gòu)建一個只有兩個constant做輸入, 然后進(jìn)行矩陣乘的簡單圖:''' #如果不使用with session()語句, 需要手動執(zhí)行session.close(). #with device設(shè)備指定了執(zhí)行計(jì)算的設(shè)備: # "/cpu:0": 機(jī)器的 CPU. # "/gpu:0": 機(jī)器的第一個 GPU, 如果有的話. # "/gpu:1": 機(jī)器的第二個 GPU, 以此類推. with Session() as session: # 創(chuàng)建執(zhí)行圖的上下文 with device('/cpu:0'): # 指定運(yùn)算設(shè)備 mat1 = constant([[3, 3]]) # 創(chuàng)建源節(jié)點(diǎn) mat2 = constant([[2], [2]]) product = matmul(mat1, mat2) # 指定節(jié)點(diǎn)的前置節(jié)點(diǎn), 創(chuàng)建圖 result = session.run(product) # 執(zhí)行計(jì)算 print(result)
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- python3.6.3安裝圖文教程 TensorFlow安裝配置方法
- python使用tensorflow保存、加載和使用模型的方法
- python使用TensorFlow進(jìn)行圖像處理的方法
- win10下python3.5.2和tensorflow安裝環(huán)境搭建教程
- python使用tensorflow深度學(xué)習(xí)識別驗(yàn)證碼
- python tensorflow基于cnn實(shí)現(xiàn)手寫數(shù)字識別
- Python通過TensorFlow卷積神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)貓狗識別
- python生成tensorflow輸入輸出的圖像格式的方法
- python tensorflow學(xué)習(xí)之識別單張圖片的實(shí)現(xiàn)的示例
- Python通過TensorFLow進(jìn)行線性模型訓(xùn)練原理與實(shí)現(xiàn)方法詳解
相關(guān)文章
Python使用Pandas庫實(shí)現(xiàn)MySQL數(shù)據(jù)庫讀寫
本次分享將介紹如何在Python中使用Pandas庫實(shí)現(xiàn)MySQL數(shù)據(jù)庫的讀寫,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08Pytorch數(shù)據(jù)拼接與拆分操作實(shí)現(xiàn)圖解
這篇文章主要介紹了Pytorch數(shù)據(jù)拼接與拆分操作實(shí)現(xiàn)圖解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04python+matplotlib繪制3D條形圖實(shí)例代碼
這篇文章主要介紹了python+matplotlib繪制3D條形圖實(shí)例代碼,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01對YOLOv3模型調(diào)用時候的python接口詳解
今天小編就為大家分享一篇對YOLOv3模型調(diào)用時候的python接口詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08執(zhí)行python腳本并傳入json數(shù)據(jù)格式參數(shù)方式
這篇文章主要介紹了執(zhí)行python腳本并傳入json數(shù)據(jù)格式參數(shù)方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-09-09Tensorflow中使用tfrecord方式讀取數(shù)據(jù)的方法
這篇文章主要介紹了Tensorflow中使用tfrecord方式讀取數(shù)據(jù)的方法,適用于數(shù)據(jù)較多時,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-06-06Python 將 QQ 好友頭像生成祝福語的實(shí)現(xiàn)代碼
這篇文章主要介紹了用 Python 將 QQ 好友頭像生成祝福語的實(shí)現(xiàn)代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05