這篇文章將為大家詳細(xì)講解有關(guān)tensorflow中參數(shù)初始化方法有哪些,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
成都創(chuàng)新互聯(lián)公司是專業(yè)的吳川網(wǎng)站建設(shè)公司,吳川接單;提供成都做網(wǎng)站、成都網(wǎng)站制作,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行吳川網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊,希望更多企業(yè)前來合作!在tensorflow中,經(jīng)常會遇到參數(shù)初始化問題,比如在訓(xùn)練自己的詞向量時,需要對原始的embeddigs矩陣進(jìn)行初始化,更一般的,在全連接神經(jīng)網(wǎng)絡(luò)中,每層的權(quán)值w也需要進(jìn)行初始化。
tensorlfow中應(yīng)該有一下幾種初始化方法
1. tf.constant_initializer() 常數(shù)初始化 2. tf.ones_initializer() 全1初始化 3. tf.zeros_initializer() 全0初始化 4. tf.random_uniform_initializer() 均勻分布初始化 5. tf.random_normal_initializer() 正態(tài)分布初始化 6. tf.truncated_normal_initializer() 截斷正態(tài)分布初始化 7. tf.uniform_unit_scaling_initializer() 這種方法輸入方差是常數(shù) 8. tf.variance_scaling_initializer() 自適應(yīng)初始化 9. tf.orthogonal_initializer() 生成正交矩陣
具體的
1、tf.constant_initializer(),它的簡寫是tf.Constant()
#coding:utf-8 import numpy as np import tensorflow as tf train_inputs = [[1,2],[1,4],[3,2]] with tf.variable_scope("embedding-layer"): val = np.array([[1,2,3,4,5,6,7],[1,3,4,5,2,1,9],[0,12,3,4,5,7,8],[2,3,5,5,6,8,9],[3,1,6,1,2,3,5]]) const_init = tf.constant_initializer(val) embeddings = tf.get_variable("embed",shape=[5,7],dtype=tf.float32,initializer=const_init) embed = tf.nn.embedding_lookup(embeddings, train_inputs) #在embedding中查找train_input所對應(yīng)的表示 print("embed",embed) sum_embed = tf.reduce_mean(embed,1) initall = tf.global_variables_initializer() with tf.Session() as sess: sess.run(initall) print(sess.run(embed)) print(sess.run(tf.shape(embed))) print(sess.run(sum_embed))
4、random_uniform_initializer = RandomUniform()
可簡寫為tf.RandomUniform()
生成均勻分布的隨機數(shù),參數(shù)有四個(minval=0, maxval=None, seed=None, dtype=dtypes.float32),分別用于指定最小值,大值,隨機數(shù)種子和類型。
6、tf.truncated_normal_initializer()
可簡寫tf.TruncatedNormal()
生成截斷正態(tài)分布的隨機數(shù),這個初始化方法在tf中用得比較多。
它有四個參數(shù)(mean=0.0, stddev=1.0, seed=None, dtype=dtypes.float32),分別用于指定均值、標(biāo)準(zhǔn)差、隨機數(shù)種子和隨機數(shù)的數(shù)據(jù)類型,一般只需要設(shè)置stddev這一個參數(shù)就可以了。
8、tf.variance_scaling_initializer()
可簡寫為tf.VarianceScaling()
參數(shù)為(scale=1.0,mode="fan_in",distribution="normal",seed=None,dtype=dtypes.float32)
scale: 縮放尺度(正浮點數(shù))
mode: "fan_in", "fan_out", "fan_avg"中的一個,用于計算標(biāo)準(zhǔn)差stddev的值。
distribution:分布類型,"normal"或“uniform"中的一個。
當(dāng) distribution="normal" 的時候,生成truncated normal distribution(截斷正態(tài)分布) 的隨機數(shù),其中stddev = sqrt(scale / n) ,n的計算與mode參數(shù)有關(guān)。
如果mode = "fan_in", n為輸入單元的結(jié)點數(shù);
如果mode = "fan_out",n為輸出單元的結(jié)點數(shù);
如果mode = "fan_avg",n為輸入和輸出單元結(jié)點數(shù)的平均值。
當(dāng)distribution="uniform”的時候 ,生成均勻分布的隨機數(shù),假設(shè)分布區(qū)間為[-limit, limit],則 limit = sqrt(3 * scale / n)
關(guān)于“tensorflow中參數(shù)初始化方法有哪些”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。