tensorflow入門教程

人工智能感覺(jué)很神秘,作為google公司力推的人工智能框架tensorflow也受到很多人的關(guān)注.本文用一個(gè)最簡(jiǎn)單的例子,帶領(lǐng)大家看看tensorflow是如何工作的.

如果你對(duì)人工智能的原理不了解可以看這篇文章人工智能-神經(jīng)網(wǎng)絡(luò)原理

首先導(dǎo)入tensorflow和numpy模塊

import tensorflow as tf

import numpy as np

我們知道tensorflow的學(xué)習(xí)是由一些正確的數(shù)據(jù)去訓(xùn)練,大量訓(xùn)練之后才會(huì)根據(jù)之前的經(jīng)驗(yàn)進(jìn)行預(yù)測(cè).所以我們先構(gòu)造一些正確的數(shù)據(jù).

x = np.random.rand(100).astype(np.float32)

y = x * 0.3 + 0.4

這里x是隨機(jī)的數(shù)列,y是真實(shí)數(shù)據(jù),也就是我們的訓(xùn)練樣本.

下面我們來(lái)構(gòu)造tensorflow中x與y的關(guān)系

Weights = tf.Variable(tf.random_uniform([1], -1, 1))

biases = tf.Variable(tf.zeros([1]))

y_prediction = Weights * x + biases

x是輸入值,y是tensorflow預(yù)測(cè)的值.由于不知道x與y是何種關(guān)系,所以用兩個(gè)變量表示,也就是經(jīng)常聽(tīng)到的權(quán)重Weights和偏置值biases.

tf.Variable是tensorflow中的變量

接下來(lái)我們要表示出來(lái)預(yù)測(cè)的值與真實(shí)值的誤差

loss = tf.reduce_mean(tf.square(y_prediction - y))

用預(yù)測(cè)出來(lái)的值減去真實(shí)值再平方,再求平均值,得出的值loss就是真實(shí)值與預(yù)測(cè)值的誤差.其實(shí)這就是我們中學(xué)里學(xué)的方差.

tf.square是平方運(yùn)算.tf.reduce_mean是求平均值.

那么接下來(lái)如何讓預(yù)測(cè)值更接近真實(shí)值呢,當(dāng)然是讓loss越來(lái)越小

optimizer = tf.train.GradientDescentOptimizer(0.5)

train = optimizer.minimize(loss)

在這一步tensorflow會(huì)不斷調(diào)整Weights和biases,去減少loss

GradientDescentOptimizer是優(yōu)化器的一種,tensorflow有很多種方法去減少loss

接下來(lái)我們要初始化tensorflow的變量,這點(diǎn)與其他語(yǔ)言不一樣,tensorflow的變量不會(huì)立刻分配內(nèi)存,像先把設(shè)計(jì)圖畫(huà)完再開(kāi)工

init = tf.global_variables_initializer()

激活神經(jīng)網(wǎng)絡(luò)

sess = tf.Session()

sess.run(init)

開(kāi)始訓(xùn)練,我們訓(xùn)練200次,每次都會(huì)調(diào)用優(yōu)化器調(diào)整權(quán)重和偏置值

我們每20步打印一次Weights,和biases的值

for step in range(200):

sess.run(train)

if step % 20 == 0:

print(step, sess.run(Weights), sess.run(biases))


訓(xùn)練到最后,我們發(fā)現(xiàn)tensorflow調(diào)整出來(lái)的Weights和biases非常接近與我們給定的0.3和0.4了,所以如果現(xiàn)在給一個(gè)x讓tensorflow做預(yù)期,得到的y值也會(huì)很接近真實(shí)值.

本文鏈接:https://www.kupposhadow.com/post/5a22463ce717c51ff6741cf2

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 簡(jiǎn)單線性回歸 import tensorflow as tf import numpy # 創(chuàng)造數(shù)據(jù) x_dat...
    CAICAI0閱讀 3,668評(píng)論 0 49
  • 這篇文章是TensorFlow的入門教程。在開(kāi)始閱讀本文之前,請(qǐng)確保你會(huì)Python,并且對(duì)矩陣有一定的了解,除此...
    吳晨閱讀 3,801評(píng)論 0 2
  • 一直對(duì)南洋的小鎮(zhèn)心存偏愛(ài),即便街道破舊,商業(yè)蕭條。 一直記得在某個(gè)清晨,踩著人字拖走在并不寬闊的小街巷中,兩側(cè)的店...
    星塵啊漫游閱讀 231評(píng)論 0 0
  • “情感賬戶”這個(gè)詞是今天第一次接觸到,又長(zhǎng)知識(shí)了真好!劉潤(rùn)老師說(shuō)的真好,我可以理解到可以把人與人之間無(wú)形的交往,情...
    森蒂薄荷閱讀 1,023評(píng)論 0 1
  • 【小心機(jī)】 1.調(diào)汁的時(shí)候,為了不太重口味,可以在調(diào)好的汁中加入少量清水; 2.汁中,除了加蒜蓉,生抽、蠔油和香油...
    Jasmine_Yang閱讀 208評(píng)論 0 0

友情鏈接更多精彩內(nèi)容