tensorflow 綜合學習系列例項之線性回歸

2021-08-20 10:45:58 字數 2496 閱讀 3397

tf是現在比較流行的深度學習框架之一,從今天開始我會把tf由簡入深到進行講解,不對的地方還請大家諒解,因為tf的版本現在更新的速度很快,不同的版本對應的api也是有所區別的,所以需要找到對應的版本,後面我所講解的例項都是基於1.2版本

在使用tf的一般正常幾個核心步驟如下:

1 首先定義引數,一般使用tf.flags這種格式

2 定義變數

3 建立graph

4 建立session,實際使用中可以增加sessionconfig

5 訓練

6 計算損失函式

7 計算損失函式梯度更新

8 執行

9 **

接下來,就先用tf實現乙個最簡單的線性回歸**,我們**乙個形如y=kx+b這種形式,例子雖然簡單的,但是核心步驟是必不可少的,學習任何東西一定是從簡單到複雜的,ok 廢話不多說,我們看**

# author jiahp

# 通過tf實現簡單的線性關係**

importtensorflow

astf

importnumpy

asnp

#建立乙個形如y = 0.3x+0.1

# 定義引數 epoch batch_size

# 定義引數 epoch batch_size

tf.flags.define_integer(

'epoch'

,2000

,'訓練多少輪'

)tf.flags.define_integer(

'batch_size',20

,'滿足該條件就列印相關資訊'

)tf.flags.define_float(

'learning_rate'

,0.01

,'學習速率'

)# 啟用引數

param = tf.flags.flags

#梯度下降指定的學習率

一般在0到1之間

learning_rate = param.learning_rate

#建立乙個輸入

x_input = np.random.rand(

100).astype(np.float32)

#建立乙個輸出

y_input = x_input*

0.5

+ 0.1

#建立圖的上下文管理器

withtf.graph().as_default():

#session會話的配置

config=tf.configproto(

log_device_placement

=true)

sess = tf.session(

config

=config)

withsess.as_default():

#指定權重

weight = tf.variable(tf.random_uniform([1]

,-1,

1))#指定biases

baies = tf.variable(tf.zeros([

1]))

#建立期望輸出

yy_input = x_input*weight + baies

#獲取期望輸出值和實際輸入值之間的差

yy_data = yy_input-y_input

#獲取期望和實際之間的損失 通過計算差的平方和

loss = tf.reduce_mean(tf.square(yy_data))

print

('loss'

,loss)

optimizer = tf.train.gradientdescentoptimizer(learning_rate)

train = optimizer.minimize(loss)

#建立初始化變數

init = tf.global_variables_initializer()

#建立乙個session

sess = tf.session()

#執行sess.run(init)

#開始訓練

forstep

inrange

(param.epoch):

#訓練模型

sess.run(train)

if(step %param.batch_size==0):

print

(step

,sess.run(weight)

,sess.run(baies))

最終結果:

tensorflow 綜合學習系列例項之神經網路

本文為大家講解如何使用tf實現乙個簡單的神經網路 首先大家要知道神經網路的簡單組成,一般來說乙個神經網路會包含,輸入層 隱藏層,輸出層.例子很簡單,主要是為了學會使用tf的核心步驟 這個是核心建立層的方法 下面是完整實現 author jiahp 建立乙個簡單的神經網路 包括 輸入層 隱藏層 輸出層...

tensorflow的reduce函式系列維度解析

tf.reduce mean tf.reduce sum tf.reduce max tf.reduce min等等函式的引數中都有乙個axis的問題,當axis none時,看成是對所有元素進行mean sum max等等操作,最終結果為乙個數。但當axis有值時,表示要操作的維度,但什麼是要操作...

tensorflow 學習 學習中

基於 virtualenv 的安裝 在 linux 上 sudo apt get install python pip python dev python virtualenv 在 mac 上 sudo easy install pip 如果還沒有安裝 pip sudo pip install up...