import os
os.environ['TF_CPP_MIN_LOG_LEVEL']='2'
#這段代碼可以屏蔽因為CPU的警告
接下來,我對variable、placeholer與constant的用法做了一些驗證,我將自己一些總結寫於下面:
一、區別。
variable 是一個類;
placeholder是一個函數;
constant是一個已知常量;
二、用法,用代碼形式講解
import tensorflow as tf
import numpy as np
import tensorflow as tf
a = tf.Variable([[2,3],[4,6]],dtype=tf.float32) #variable必須給定初始化值,不能是定義變量,否則會報錯 ①
b = tf.placeholder(tf.float32,[2,2]) #可以給定張量維度,如2行2列
c = tf.add(a,b) #若沒有placeholder,可以使用c=a*a (a=tf.constant(tf.ones(2,3))),其它運算可以類比 ②
sess = tf.Session()
init=tf.global_variables_initializer() #有Variable時候才初始化,實際告訴計算機解釋①中variable定義初始化變量可以使用了
sess.run(init) #開始進行初始化運算,將值賦給變量
print(init)
import numpy as np
k=np.ones([2,2]) # 絕對不能是python定義列表等,我試過會報錯,最好是numpy來給想要的數組
print('c\n')
ff=sess.run(c,feed_dict={b:k}) #feed_dict 在placeholder時候使用,告訴變量用什么值,如果沒有placeholder 可以不用寫feed_dict 直接運行結果,如解釋2中的sess.rn(c)
print(ff)