計算機視覺基礎系列(python與opencv的操作與運用/tensorflow的基礎介紹)(五)---tensorflow的運算

tensorflow的運行機制:

其中tensor就是我們所說的變量等等,而op則是operation是我們常常運用的四則運算法則和賦值操作等等。graphs則是數據操作的過程,就是這些組成了tensorflow。那麼tensorflow怎麼運算的呢?所有的計算圖必須放在session會話中運行,session這是運算的核心。其實初始化操作也可以看作是一個計算圖。

常見的加減乘除運算再tensorflow中的運用:(如下代碼示例)

import tensorflow as tf
data1 = tf.constant(2, dtype=tf.int32)         # data1定義爲常量
data2 = tf.Variable(10, name='var')            # data2定義爲變量
data3 = tf.constant(6)
sess = tf.Session()
init = tf.global_variables_initializer()       # 變量初始化
sess.run(init)                                 # 初始化經過會話生效
dataAdd = tf.add(data1, data2)                 # 加減乘除運算
dataMul = tf.multiply(data1, data3)
dataSub = tf.subtract(data2, data3)
dataDiv = tf.divide(data1, data3)
with sess:
    print(sess.run(dataAdd))
    print(sess.run(dataMul))
    print(sess.run(dataSub))
    print(sess.run(dataDiv))
print('end!')

輸出的結果爲:

我們再來一個小示例如下:

import tensorflow as tf
data1 = tf.constant(2, dtype=tf.int32)         # data1定義爲常量
data2 = tf.Variable(10, name='var')            # data2定義爲變量
data3 = tf.constant(6)
sess = tf.Session()
init = tf.global_variables_initializer()       # 變量初始化
sess.run(init)                                 # 初始化經過會話生效
dataAdd = tf.add(data1, data2)                 # 加減乘除運算
dataCopy = tf.assign(data2, dataAdd)           # 把當前的結果運算的dataAdd追加到data2中,即data的值爲12.dataCopy也爲12
dataMul = tf.multiply(data1, data3)
dataSub = tf.subtract(data2, data3)
dataDiv = tf.divide(data1, data3)
with sess:
    print(sess.run(dataAdd))
    print(sess.run(dataMul))
    print(sess.run(dataSub))
    print(sess.run(dataDiv))
    print('sess.run(dataCopy)', sess.run(dataCopy))
    print('dataCopy.eval()', dataCopy.eval())         # 沒有放在session中運行,是不是有所矛盾,其實不是這裏的值是data1+data2
    print('tf.get_default_session()', tf.get_default_session().run(dataCopy))  # 這裏data2的值爲12,所以得到這些結果
print('end!')

輸出的結果是:

輸出這些的原因,代碼註釋中有詳細說明。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章