Tensorflow的幾種變數生成格式。tf.zero,tf.fill,tf.random

lichaoqi1發表於2020-10-31

提示:文章寫完後,目錄可以自動生成,如何生成可參考右邊的幫助文件


前言

提示:Tensorflow是目前人工智慧領域最常用的框架,本文介紹幾種tensorflow中常用的變數生成函式。


提示:以下是本篇文章正文內容,下面案例可供參考

一、TensorFlow是什麼?

TensorFlow是一個基於資料流程式設計(dataflow programming)的符號數學系統,被廣泛應用於各類機器學習(machine learning)演算法的程式設計實現,其前身是谷歌的神經網路演算法庫DistBelief.

二、隨機數生成器

1.TensorFlow常數生成函式

(1)Tensorflow.zeros函式
這個函式的作用是生成全為0的陣列。
tf.zeros(shape, dtype=dtypes.float32, name=None) 其中shape是生成矩陣的形狀,dtype指的是生成矩陣資料型別,name指變數的名字。
程式碼如下:

import tensorflow as tf
a=tf.zeros([2,3])
with tf.Session() as sess:
	print(a.eval())
#輸出結果
[[0. 0. 0.]
 [0. 0. 0.]]

(2)Tensorflow.ones函式
這個函式的作用是生成全為1的陣列。
tf.ones(shape, dtype=dtypes.float32, name=None) 其中shape是生成矩陣的形狀,dtype指的是生成矩陣資料型別,name指變數的名字。
程式碼如下:

import tensorflow as tf
a=tf.ones([3,3])
with tf.Session() as sess:
	print(a.eval())
#輸出結果
[[1. 1. 1.]
 [1. 1. 1.]
 [1. 1. 1.]]

(3)Tensorflow.fill函式
這個函式的作用是生成全為1的陣列。
tf.fill(dims, value, name=None) 其中dims是生成矩陣的形狀,value指的用某個值填充,name指變數的名字。
程式碼如下:

import tensorflow as tf
a=tf.fill([2,2],5)
with tf.Session() as sess:
	print(a.eval())
#輸出結果
[[5 5]
 [5 5]]

(4)Tensorflow.constant函式
這個函式的作用是生成全為1的陣列。
tf.constant(value, dtype=None, shape=None, name=“Const”, verify_shape=False): 其中shape是生成矩陣的形狀,value指的用某個值填充,dtype指值得型別,name指變數的名字,verify_shape指啟用值形狀驗證的布林值
程式碼如下:

import tensorflow as tf
a=tf.constant(4, dtype=float, shape=(2,2), name="Const", verify_shape=False)
with tf.Session() as sess:
	print(a.eval())
#輸出結果
[[4. 4.]
 [4. 4.]]

2.TensorFlow隨機數生成函式

(1)Tensorflow.random_normal函式
這個函式的作用是生成正太分佈的陣列。
tf.random_normal(shape,mean=0.0,stddev=1.0,dtype=dtypes.float32,seed=None, name=None)) 其中mean是生成正太分佈期望,stddev是指正太分佈的方差,dtype指的是生成矩陣資料型別,name指變數的名字,seed是指設定隨機種子。
程式碼如下:

import tensorflow as tf

a=tf.random_normal([2,2],mean=0.0,stddev=1.0,
						dtype=float,seed=None,name=None)
with tf.Session() as sess:
	print(a.eval())
#輸出結果
[[ 0.46431988 -1.1849118 ]
 [-0.47901395 -0.19268647]]

(2)Tensorflow.truncated_normal函式
這個函式的作用是生成全為1的陣列。
tf.truncated_normal(shape,mean=0.0,stddev=1.0,dtype=dtypes.float32,seed=None, name=None)) 其中mean是生成正太分佈期望,stddev是指正太分佈的方差,dtype指的是生成矩陣資料型別,name指變數的名字,seed是指設定隨機種子。與正太分佈不同在於,如果隨機數偏離平均值超過2,這個數就會被隨機分配。
程式碼如下:

import tensorflow as tf

a=tf.truncated_normal([2,2],mean=0.0,
stddev=1.0,dtype=float,seed=None,name=None)
with tf.Session() as sess:
	print(a.eval())
#輸出結果
[[ 0.7598669   0.29694057]
 [-0.18785699 -0.71210927]]

(3)Tensorflow.random_uniform函式
這個函式是產生平均分佈的隨機數。
tf.random_uniform((shape, dtype, seed=0, seed2=0, name=None)
程式碼如下:

import tensorflow as tf
a=tf.random_uniform([2,2], seed=0,name=None)
with tf.Session() as sess:
	print(a.eval())
#輸出結果
[[0.10086262 0.9701668 ]
 [0.8487642  0.04828131]]

(4)Tensorflow.random_gamma函式
這個函式產生Gamma分佈的隨機數
tf.random_gamma(shape, alpha, seed=0, seed2=0, name=None):
alpha代表
程式碼如下:

import tensorflow as tf

a=tf.random_gamma([2,2], alpha=0.1,seed=0,name=None)
with tf.Session() as sess:
	print(a.eval())
#輸出結果
[[7.1384362e-05 1.0499792e-07]
 [9.7678287e-04 4.2698447e-02]]

相關文章