您好,登錄后才能下訂單哦!
這篇文章主要介紹了TensorFlow中常量、變量和運算操作的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
常量
tf.constant()
tf.constant(value, dtype=None, shape=None, name='Const', verify_shape=False),value為值,dtype類型,shape為張量形狀,name名稱、verify_shape默認False,這些項可選。作用創建一個常量。
a = tf.constant(2, name="a") # print(a) = 2 b = tf.constant(2.0, dtype=tf.float32, shape=[2,2], name="b") # 2x2矩陣,值為2 c = tf.constant([[1, 2], [3, 4]], name="c") # 2x2矩陣,值1,2,3,4
tf.zeros()和tf.zeros_like()
tf.zeros(shape, dtype=tf.float32, name=None), shape為張量形狀,dtype類型,name名稱。創建一個值為0的常量。
a = tf.zeros(shape=[2, 3], dtype=tf.int32, name='a') # 2x3矩陣,值為0, a = [[0, 0, 0], [0, 0, 0]]
tf.zeros_like(input_tensor, dtype=None, name=None, optimize=True),input_tensor為張量,dtype類型,name名稱,optimize優化。根據輸入張量創建一個值為0的張量,形狀和輸入張量相同。
input_tensor = tf.constant([[1,2], [3,4], [5,6]) a = tf.zeros_like(input_tensor) # a = [[0, 0], [0, 0], [0, 0]]
tf.ones()和tf.ones_like()
tf.ones(shape, dtype=tf.float32, name=None),與tf.zeros()類似。
tf.ones_like(input_tensor, dtype=None, name=None, optimize=True),與tf.zeros_like()類似。
tf.fill()
tf.fill(dims, value, name=None), dims為張量形狀,同上述shape,vlaue值,name名稱。作用是產生一個張量,用一個具體值充滿張量。
a = tf.fill([2,3], 8) # 2x3矩陣,值為8
tf.linspace()
tf.linspace(start, stop, num, name=None),start初始值,stop結束值,num數量,name名稱。作用是產生一個等差數列一維向量,個數是num,初始值start、結束值stop。
a = tf.linspace(10.0, 13.0, 4) # a = [10.0 11.0 12.0 13.0]
tf.range()
tf.range(start=0, limit=None, delta=1, dtype=None, name='range'),start初始值,limit限制,delta增量,dtype類型,name名稱。作用是產生一個等差數列的一維向量,初始值start,公差delta,結束值小于limit。
a = tf.range(start, limit, delta) # a = [3, 6, 9, 12, 15] b = tf.range(5) # b = [0, 1, 2, 3, 4]
tf.random_normal()
tf.random_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None), shape張量形狀,mean均值,stddev標準差,dtype類型,seed隨機種子,name名稱。作用是產生一個正太分布分布,均值為mean,標準差為stddev。
tf.truncated_normal()
tf.truncated_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None,name=None),shape張量形狀,mean均值,stddev標準差,dtype類型,seed隨機種子,name名稱。作用是產生一個截斷的正太分布,形狀為shape,均值為mean,標準差為stddev。
tf.random_uniform()
tf.random_uniform(shape, minval=0, maxval=None, dtype=tf.float32, seed=None,name=None),shape張量形狀,minval最小值,maxval最大值,dtype類型,seed隨機種子,name名稱。作用是產生一個均勻分布,形狀為shape,最小值為minval,最大值為maxval。
tf.random_shuffle()
tf.random_shuffle(value, seed=None, name=None),value張量,seed隨機種子,name名稱。作用是將張量value里面的值隨機打亂。
a = tf.constant([[1,2],[3,4]],name='a') b = tf.random_shuffle(a, name='b') # b = [[2,3], [1,4]]
tf.random_crop()
tf.random_crop(value, size, seed=None, name=None),value張量,size大小,seed隨機種子,name名稱。作用是將張量value隨機裁剪成size形狀大小的張量,value形狀大小>=size。
tf.multinomial()
tf.multinomial(logits, num_samples, seed=None, name=None), logits張量,num_samples采樣輸出,seed隨機種子,name名稱。作用是根據概率分布的大小,隨機返回對應維度的下標序號。
a = tf.constant([[1, 2, 3, 4, 1], [3, 2, 3, 4, 3]], name='a') b = tf.multinomial(a, 1, name='b') # b = [0, 0]或者[0, 2]或者[4, 4]
tf.random_gamma()
tf.random_gamma(shape, alpha, beta=None, dtype=tf.float32, seed=None, name=None)。作用是產生一個Gamma分布。
變量
tf.Variable()
tf.Variable(<initial-value>, name=<optional-name>),變量可以根據直接賦值,如a、b、c,也可以根據構造函數賦值,如W、Z。
a = tf.Variable(2, name="scalar") b = tf.Variable([2, 3], name="vector") c = tf.Variable([[0, 1], [2, 3]], name="matrix") W = tf.Variable(tf.zeros([784,10]), name="weights") Z = tf.Variable(tf.random_normal([784, 10], mean=0, stddev=0.01), name="Z"
tf.Variable().initializer
1.全局變量初始化
init = tf.global_variables_initializer() with tf.Session() as sess: sess.run(init)
2.指定變量初始化
W = tf.Variable(tf.truncated_normal([700, 10])) with tf.Session() as sess: sess.run(W.initializer) print(W) # Tensor("Variable/read:0", shape=(700, 10), dtype=float32)
tf.Variable().eval()
返回變量值。
W = tf.Variable(tf.truncated_normal([700, 10])) with tf.Session() as sess: sess.run(W.initializer) print(W.eval()) >> [[-0.76781619 -0.67020458 1.15333688 ..., -0.98434633 -1.25692499 -0.90904623] [-0.36763489 -0.65037876 -1.52936983 ..., 0.19320194 -0.38379928 0.44387451] [ 0.12510735 -0.82649058 0.4321366 ..., -0.3816964 0.70466036 1.33211911] ..., [ 0.9203397 -0.99590844 0.76853162 ..., -0.74290705 0.37568584 0.64072722] [-0.12753558 0.52571583 1.03265858 ..., 0.59978199 -0.91293705 -0.02646019] [ 0.19076447 -0.62968266 -1.97970271 ..., -1.48389161 0.68170643
tf.Variable.assign()
直接調用assign()并不起作用,它是一個操作,需要sess.run()操作才能起效果。
W = tf.Variable(10) W.assign(100) with tf.Session() as sess: sess.run(W.initializer) print(W.eval()) # >> 10
W = tf.Variable(10) assign_op = W.assign(100) with tf.Session() as sess: # sess.run(W.initializer) # 當變量有值的話,可以省略,不需要初始化 sess.run(assign_op) print W.eval() # >> 100
運算操作
運算操作圖
tf.multiply()和tf.matmul()
tf.multiply(x, y, name)作用是x, y逐項相乘。
tf.matmul(x, y, name)作用是x,y矩陣相乘。
a = tf.constant([3, 6]) b = tf.constant([2, 2]) c1 = tf.matmul(a, b) # 報錯 c2 = tf.matmul(tf.reshape(a, [1, 2]), tf.reshape(b, [2, 1]))# c2 = [[18]] c3 = tf.multiply(a, b) # c3 = [6, 12]
加減就不細說了。
感謝你能夠認真閱讀完這篇文章,希望小編分享的“TensorFlow中常量、變量和運算操作的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。