tensorflow實例(1)--變量、常量的定義與使用

本文將通過三個例子來詳細說明tensorflow中如何定義、使用變量與常量

在window下安裝python與tensorflow的方法可參考我的另一篇文章

win7 64 位 Visual studio 環境下,使用whl依賴包,搭建python3.5 機器學習開發環境


# -*- coding:utf-8 -*- 
import tensorflow as tf

print('-'*30+'例一定義變量')
m1=tf.Variable([[1,2,3],[4,5,6]]) #定義兩行三列變量
m2=tf.Variable([[1,2],[3,4],[5,6]]) # 定義三行兩列變量
result=tf.matmul(m1,m2)
'''
定義矩陣相乘 即,如果你對矩陣乘法不瞭解,建議先回頭學學線性代數,這相當重要
1,2,3       1,2
4,5,6   *   3,4
              5,6
注意:這裏是定義,不是計算,在tensorflow中的計算要通過sess.run來完成,
這與通常的語言在寫法上是有一定的差異
'''

#計算方法一
with tf.Session() as sess:          # tf.Session()進行實例化
    sess.run(tf.initialize_all_variables())  #初始化所以變量,即m1,m2, 另特別注意是,2017-03-02之後的版本使用tf.global_variables_initializer()進行初始化
    print(sess.run(result))         # result不算是變量,是一個計算過程的定義,通過sess.run(result)運行

#計算方法二
sess=tf.Session()
sess.run(tf.initialize_all_variables())
print(sess.run(result))
sess.close()    #與方法一不同之處在此行,使用完後需要關閉以釋放資源,需要對sess進行關閉,方法一則不用
print('-'*30+'例一結束\r\n')


print('-'*30+'例二:定義常量')
m1=tf.constant([[1,2,3],[4,5,6]]) #定義兩行三列常量
m2=tf.constant([[1,2],[3,4],[5,6]]) # 定義三行兩列常量
result=tf.matmul(m1,m2)
with tf.Session() as sess:
    print(sess.run(result))  #與例一不同,在result計算過程中使用的是m1與m2是常量,不需要進行初始化
print('-'*30+'例二結束\r\n')

print('-'*30+'例三;實現高斯求和')
'''
tensorflow來寫這個,是代碼又多又麻煩,當然我們的目的是理解tensorflow變量與常量的使用,堅持一下
'''
numer=tf.Variable(0)
sumValue=tf.Variable(0)
step=tf.constant(1)

new_numer=tf.add(numer,step)            #定義一個計算過程 new_numer,實現數字,1,2,3,...
update_numer=tf.assign(numer,new_numer) #將new_numer的值更新至 numer

new_sumValue=tf.add(sumValue,numer)     #定義一個計算過程 new_sumValue,實現數字sumValue 不斷的加上 numer
update_sumValue=tf.assign(sumValue,new_sumValue) #將new_sumValue的值更新至 sumValue
with tf.Session() as sess:
    sess.run(tf.initialize_all_variables())
    for i in range(100):
        sess.run(update_numer)
        sess.run(update_sumValue)
    print(sess.run(sumValue))
print('-'*30+'例三結束')




發佈了46 篇原創文章 · 獲贊 14 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章