TensorFlow的變數初始化

2021-10-02 07:22:32 字數 2818 閱讀 9438

初始化函式

功能主要引數

tf.constant_initializer

將變數初始化為給定常量

常量的取值

tf.random_normal_initializer

將變數初始化為滿足正太分布的隨機值

正太分布的均值和標準差

tf.truncated_normal_initializer

將變數初始化為滿足正太分布的隨機值,但是變數隨機的值偏離平均值超過兩個標準差,那麼這個數將被重新隨機

正太分布的均值和標準差

tf.random_uniform_initializer

將變數初始化為滿足平均分布的隨機值

最大、最小值

tf.uniform_unit_scaling_initializer

將變數初始化為滿足平均分布但不影響輸出數量集的隨機值

factor(產生的隨機數值乘以係數)

tf.zeros_initializer

將變數設為全0

變數維度

tf.ones_initializer

將變數設為全1

變數維度

tf.get_variable的初始化呼叫為:

tf.get_variable(name, shape=none,initializer=none, dtype=tf.float32, trainable=true, collections=none)

其中initializer就是變數初始化的方法,初始化的方式有以下種類:

initializer = tf.constant_initializer(const):常量初始化函式

initializer = tf.random_normal_initializer():正態分佈初始化函式

initializer = tf.truncated_normal_initializer(mean = 0.0, stddev = 1.0, seed = none, dtype = dtypes.float32):擷取的正態分佈初始化函式

initializer = tf.random_uniform_initializer(minval = 0, maxval = none, seed = none, dtype = dtypes.float32):均勻分布初始化函式

initializer = tf.zeros_initializer():全0常量初始化函式

initializer = tf.ones_initializer():全1常量初始化函式

initializer = tf.uniform_unit_scaling_initializer(factor = 1.0, seed = none, dtype = dtypes.float32):均勻分布(不指定最小、最大值),初始化函式

initializer = tf.variance_scaling_initializer(scale = 1.0, mode = 「fan_in」, distribution = 「normal」, seed = none, dtype = dtypes.float32):由mode確定是擷取的正態分佈,還是均勻分布初始化函式

initializer = tf.orthogonal_initializer():正交矩陣初始化函式

initializer = tf.glorot_uniform_initializer():由輸入單元節點數和輸出單元節點數確定的均勻分布初始化函式

initializer = tf.glorot_normal_initializer():由輸入單元節點數和輸出單元節點數確定的擷取的正態分佈初始化函式

ps: tf.get_variable中initializer的初始化不需要再指定shape了,已經在外面指定。

基本的變數初始化為:

tf.ones(shape, dtype = tf.float32, name = none)

tf.zeros(shape, dtype = tf.float32, name = none)

tf.ones_like(tensor, dtype = none, name = none)

tf.zeros_like(tensor, dtype = none, name = none)

tf.fill(dim, value, name = none)

tf.constant(value, dtype = none, shape = none, name = none)

tf.linspace(start, stop, num, name = none)

tf.range(start, limit = none, delta = 1, name = none)

tf.random_normal(shape, mean = 0.0, stddev = 1.0, dtype = tf.float32, seed = none, name = none)

tf.truncated_normal(shape, mean = 0.0, stddev = 1.0, dtype = tf.float32, seed = none, name = none)

tf.random_uniform(shape, minval = 0, maxval = none, dtype = tf.float32, seed = none, name = none)

tf.random_shuffle(value, seed =none, name = none)

tf.set_random_seed(seed):設定產生隨機數的種子

例如:tf.set_random_seed(123456789)

vara = tf.random_normal([1.0])

Tensorflow初始化變數

變數必須先初始化後才可使用。如果您在低級別 tensorflow api 中進行程式設計 即您在顯式建立自己的圖和會話 則必須明確初始化變數。tf.contrib.slim tf.estimator.estimator和keras等大多數高階框架在訓練模型前會自動為您初始化變數。要在訓練開始前一次性...

TensorFlow變數初始化

import tensorflow as tf w1 tf.variable tf.random normal 2,3 stddev 1,seed 1 with tf.session as sess sess.run tf.global variables initializer print w1 ...

TensorFlow 變數初始化函式

tensorflow 中的變數初始化函式 初始化函式 功能主要引數 tf.constant initializer 將變數初始化為給定常量 常量的取值 tf.random normal initializer 將變數初始化為滿足正太分布的隨機值 正太分布的均值和標準差 tf.truncated no...