TensorFlow變量初始化

tf.get_variable的初始化調(diào)用為:
tf.get_variable(name, shape=None, initializer=None, dtype=tf.float32, trainable=True, collections=None)
其中initializer就是變量初始化的方法,初始化的方式有以下種類:
initializer = tf.constant_initializer(const):常量初始化函數(shù)
initializer = tf.random_normal_initializer():正態(tài)分布初始化函數(shù)
initializer = tf.truncated_normal_initializer(mean = 0.0, stddev = 1.0, seed = None, dtype = dtypes.float32):截取的正態(tài)分布初始化函數(shù)
initializer = tf.random_uniform_initializer(minval = 0, maxval = None, seed = None, dtype = dtypes.float32):均勻分布初始化函數(shù)
initializer = tf.zeros_initializer():全0常量初始化函數(shù)
initializer = tf.ones_initializer():全1常量初始化函數(shù)
initializer = tf.uniform_unit_scaling_initializer(factor = 1.0, seed = None, dtype = dtypes.float32):均勻分布(不指定最小、最大值),初始化函數(shù)
initializer = tf.variance_scaling_initializer(scale = 1.0, mode = "fan_in", distribution = "normal", seed = None, dtype = dtypes.float32):由mode確定是截取的正態(tài)分布,還是均勻分布初始化函數(shù)
initializer = tf.orthogonal_initializer():正交矩陣初始化函數(shù)
initializer = tf.glorot_uniform_initializer():由輸入單元節(jié)點(diǎn)數(shù)和輸出單元節(jié)點(diǎn)數(shù)確定的均勻分布初始化函數(shù)
initializer = tf.glorot_normal_initializer():由輸入單元節(jié)點(diǎn)數(shù)和輸出單元節(jié)點(diǎn)數(shù)確定的截取的正態(tài)分布初始化函數(shù)
PS: tf.get_variable中initializer的初始化不需要再指定shape了,已經(jīng)在外面指定。

基本的變量初始化為:
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):設(shè)置產(chǎn)生隨機(jī)數(shù)的種子
例如:
tf.set_random_seed(123456789)
varA = tf.random_normal([1.0])

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容