學習筆記TF044:TF.Contrib組件帝洪、統(tǒng)計分布似舵、Layer脚猾、性能分析器tfprof

TF.Contrib,開源社區(qū)貢獻砚哗,新功能龙助,內(nèi)外部測試,根據(jù)反饋意見改進性能蛛芥,改善API友好度提鸟,API穩(wěn)定后,移到TensorFlow核心模塊仅淑。生產(chǎn)代碼称勋,以最新官方教程和API指南參考。

統(tǒng)計分布涯竟。TF.contrib.ditributions模塊赡鲜,Bernoulli、Beta庐船、Binomial银酬、Gamma筐钟、Ecponential揩瞪、Normal、Poisson篓冲、Uniform等統(tǒng)計分布李破,統(tǒng)計研究宠哄、應用中常用,各種統(tǒng)計嗤攻、機器學習模型基石琳拨,概率模型、圖形模型依賴屯曹。

每個不同統(tǒng)計分布不同特征狱庇、函數(shù),同樣子類Distribution擴展恶耽。Distribution密任,建立和組織隨機變量、統(tǒng)計分布基礎類偷俭。is_continuous表明隨機變量分布是否連續(xù)浪讳。allow_nan_states表示分布是否接受nan數(shù)據(jù)。sample()從分布取樣涌萤。prob()計算隨機變量密度函數(shù)淹遵。cdf()求累積分布函數(shù)。entropy()负溪、mean()透揣、std()、variance()得到統(tǒng)計分布平均值和方差等特征川抡。自定義統(tǒng)計分布類要實現(xiàn)以上方程辐真。

Gamma分布。contrib.distributions導入Gamma分布崖堤,初始化alpha侍咱、beta tf.constant,建立Gamma分布密幔。batch_shap().eval()得到每個樣本形狀楔脯,get_batch_shape(),tf.TensorShape()胯甩。log_pdf()函數(shù)昧廷,值log轉換概率密度函數(shù)。建立多維Gamma分布蜡豹,傳入多維alpha麸粮、beta參數(shù)。

Layer模塊镜廉。Contrib.layer包含機器學習算法所需各種各樣成份弄诲、部件,卷積層、批標準化層齐遵、機器學習指票寂玲、優(yōu)化函數(shù)、初始器梗摇、特征列拓哟。

機器學習層。深度學習和計算機視覺二維平均池avg_pool2d伶授。np.random.uniform建立寬高都是3幾張圖片断序,contrib.layers.avg_pool2d()對圖片快速建立3x3二維平均池,outpu形狀[5,1,1,3]糜烹,對每個3x3區(qū)域取計算平均值违诗。

建立卷積層,contrib.layers.convolution2d()建立32個3x3過濾器卷積層疮蹦,改stride诸迟、padding、activation_fn參數(shù)建立不同架構卷積層愕乎,使用不同卷咱們層激活函數(shù)阵苇。contrib.layers自動建立op名字,output.op.name值'Conv/Relu'感论,用了Conv層和ReLU激活函數(shù)绅项。layer有自己對應op名字,每個op空間存儲對應變量笛粘,contrib.framework.get_variables_by_name()得到對應op空間變量值趁怔。get_variables_by_name得到建立卷積層權重湿硝,權重形狀是weights_shape值薪前,[3,3,4,32]。

contrib.framework arg_scope減少代碼重復使用关斜。layers.convolution2d及傳入?yún)?shù)放到agr_scope示括,避免重復在多個地方傳入。normalizer_fn和normalizer_params痢畜,標準化方程及參數(shù)垛膝。

len(tf.contrib.framework.get_variables('Conv/BatchNorm'))得到第一個Conv/BatchNorm層長度。

完全連接神經(jīng)網(wǎng)絡層fully_connected()丁稀。建立輸入矩陣吼拥,fully_connected()建立輸出7個神經(jīng)單元神經(jīng)網(wǎng)絡層。tf.name_scope截下來運算放name_scope线衫。fully_connected()傳入scope凿可。"fe/fc"層別號。傳入outputs_collections,直接得到層輸出枯跑。

repeat()重復用同樣參數(shù)重復建立某個層惨驶。stack()用不同參數(shù)建立多個fully_connected()層。conv2d_transpose敛助、conv2d_in_plane粗卜、separable_conv2d,參考官方文檔纳击。

損失函數(shù)续扔。tf.contrib.losses模塊,各種常用損失函數(shù)焕数,二類分類测砂、多類分類、回歸模型等機器學習算法百匆。

絕對差值砌些。tf.constant建立predictions、targets數(shù)列加匈。同樣shape存璃。選擇性建立權重。losses.absolute_difference()計算預測損失值雕拼。

計算softmax交叉熵纵东。多類分類機器學習模型。建立predictions啥寇、labels偎球,多給。losses.softmax_cross_entropy()計算預測softmax交叉熵值辑甜。loss.eval()運行衰絮。loss.op.name得到TensorFlow自動賦值op名字,'softmax_cross_entropy_loss/value'磷醋。softmax_cross_entropy() label_smoothing平滑所有標識猫牡。

應用大部分分布稀疏,sparse_softmax_cross_entropy()提升計算效率邓线。

特征列 Feature Column淌友。tf.contrib.layers高階特征列(Feature Column)API,和TF.Learn API結合使用,建立最適合自己數(shù)據(jù)的模型骇陈。

數(shù)據(jù)連續(xù)特征(continuous Feature)震庭、類別特征(Categorical Feature)。連續(xù)數(shù)值特征稱連續(xù)特征你雌,可直接用在模型里器联。不連續(xù)類別特征,需要數(shù)值化,轉換為一系列數(shù)值代表每個不同類別主籍。learn.datasets API讀入數(shù)據(jù)习贫。

layers.FeatureColumn API定義特征列。real_valued_column()定義連續(xù)特征千元。

sparse_column_with_keys()處理類別特征苫昌,事先知道特征所有可能值。不知道所有可能值幸海,用sparse_column_with_hash_bucket()轉為特征列祟身,哈希表。SparseColumn物独,直接在TF.Learn傳入Estimator袜硫。

數(shù)據(jù)科學應用,連續(xù)特征可能需要被離散化挡篓,形成新類別特征婉陷,更好代表特征和目標分類類別之間關系。bucketized_column()將SparseColumn區(qū)間化官研。

部分應用秽澳,多個特征綜合、交互與目標分類類別關系更緊密戏羽。多個特征相關担神,特征交互能建立更有效模型。crossed_column()建立交叉特征列始花。

特征列傳入TF.Learn Estimator妄讯。fit()、predict()訓練酷宵、評估模型亥贸。

取部分特征加權求和作新特征列,weighted_sum_from_feature_columns()實現(xiàn)忧吟。

Embeddings砌函,嵌入向量。稀疏溜族、高維類別特征向量,轉換低維垦沉、稠密實數(shù)值向量煌抒,和連續(xù)特征向量聯(lián)合,一起輸入神經(jīng)網(wǎng)絡模型訓練和優(yōu)化損失函數(shù)厕倍。大部分文本識別寡壮,先將文本轉換成嵌入向量。

contrib.layers模塊 embedding_column()迅速把高維稀疏類別特征向量轉為想要維數(shù)的嵌入向量。特征交互矩陣比較稀疏况既,級別比較高这溅,轉換后可以使模型更具有概括性更有效。傳入TF.Learn Extimator進行模型建立棒仍、訓練悲靴、評估。embedding_columns傳入DNNLinearCombinedClassifier深度神經(jīng)網(wǎng)絡特征列莫其。

許多實際稀疏高維數(shù)據(jù)癞尚,通常有空特征及無效ID,safe_enbedding_lookup_sparse()安全建立嵌入向量乱陡。tf.SparseTensor建立稀疏ID和稀疏權重浇揩。建立嵌入向量權重embedding_weights,取決詞匯量大小憨颠、嵌入同量維數(shù)胳徽、shard數(shù)量。initializer.run()爽彤、eval()初始化嵌入向量權重膜廊。safe_embedding_lookup_sparse()將原來特征向量安全轉換為低維、稠密特征向量淫茵。eval()收集到一個tuple爪瓜。

性能分析器tfprof。分析模型架構匙瘪、衡量系統(tǒng)性能铆铆。衡量模型參數(shù)、浮點運算丹喻、op執(zhí)行時間薄货、要求存儲大小、探索模型結構碍论。

命令安裝tfprof命令行工具谅猾。bazel build -c opt tensorflow/contrib/trprof/...。

查詢幫助文件鳍悠。bazel-bin/tensorflow/contrib/tfprof/tools/tfprof/tfprof help税娜。

執(zhí)行互動模式,指定graph_path分析模型shape藏研、參數(shù)敬矩。bazel-bin/tensorflow/contrib/tfprof/tools/tfprof/tfprof --graph_path=graph.pbtxt。

graph_path蠢挡、checkpoint_path查看checkpoint Tensor數(shù)據(jù)和對應值弧岳。bazel-bin/tensorflow/contrib/tfprof/tools/tfprof/tfprof --graph_path=graph.pbtxt --checkpoint_path=model.ckpt凳忙。

提供run_meta_path查看不同op請求存儲、計時禽炬。bazel-bin/tensorflow/contrib/tfprof/tools/tfprof/tfprof --graph_path=graph.pbtxt --fun_meta_path=run_meta --checkpoint_path=model.ckpt涧卵。

graph_path文件是GraphDef文本文件,用來在內(nèi)存建立模型代表腹尖。tf.Supervisor寫graph.pbtxt柳恐。tf.Graph.as_graph_def()或其他類似API存儲模型定義到GraphDef文件。

run_meta_path文件是tensorflow::RunMetadata結果桐臊。得到模型每個op所需存儲和時間消耗胎撤。

checkpoint_path是模型checkpoint包含所有checkpoint變量op類型、shape断凶、值伤提。

op_log_path是tensorflow::tfprof::OpLog結果,包含額外op信息认烁,op組類別名字肿男。

tfprof是CLI命令行工具,輸入tfprof命令按回車却嗡,進入互動模式舶沛,再按回車看到命令行參數(shù)默認值。

調(diào)節(jié)參數(shù)窗价,show_name_regexes查找符合正則式條件的scope名字如庭。

tfprof提供兩種類型分析:scope、graph撼港。graph坪它,查看op在graph里所花內(nèi)存、時間帝牡。

參考資料:
《TensorFlow實戰(zhàn)》

歡迎付費咨詢(150元每小時)往毡,我的微信:qingxingfengzi

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市靶溜,隨后出現(xiàn)的幾起案子开瞭,更是在濱河造成了極大的恐慌,老刑警劉巖罩息,帶你破解...
    沈念sama閱讀 218,607評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件嗤详,死亡現(xiàn)場離奇詭異,居然都是意外死亡扣汪,警方通過查閱死者的電腦和手機断楷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來崭别,“玉大人冬筒,你說我怎么就攤上這事∶┲鳎” “怎么了舞痰?”我有些...
    開封第一講書人閱讀 164,960評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長诀姚。 經(jīng)常有香客問我响牛,道長,這世上最難降的妖魔是什么赫段? 我笑而不...
    開封第一講書人閱讀 58,750評論 1 294
  • 正文 為了忘掉前任呀打,我火速辦了婚禮,結果婚禮上糯笙,老公的妹妹穿的比我還像新娘贬丛。我一直安慰自己,他們只是感情好给涕,可當我...
    茶點故事閱讀 67,764評論 6 392
  • 文/花漫 我一把揭開白布豺憔。 她就那樣靜靜地躺著,像睡著了一般够庙。 火紅的嫁衣襯著肌膚如雪恭应。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,604評論 1 305
  • 那天耘眨,我揣著相機與錄音昼榛,去河邊找鬼。 笑死剔难,一個胖子當著我的面吹牛胆屿,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播钥飞,決...
    沈念sama閱讀 40,347評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼莺掠,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了读宙?” 一聲冷哼從身側響起彻秆,我...
    開封第一講書人閱讀 39,253評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎结闸,沒想到半個月后唇兑,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,702評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡桦锄,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,893評論 3 336
  • 正文 我和宋清朗相戀三年扎附,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片结耀。...
    茶點故事閱讀 40,015評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡留夜,死狀恐怖匙铡,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情碍粥,我是刑警寧澤,帶...
    沈念sama閱讀 35,734評論 5 346
  • 正文 年R本政府宣布嚼摩,位于F島的核電站钦讳,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏枕面。R本人自食惡果不足惜愿卒,卻給世界環(huán)境...
    茶點故事閱讀 41,352評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望潮秘。 院中可真熱鬧琼开,春花似錦、人聲如沸唇跨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽买猖。三九已至改橘,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間玉控,已是汗流浹背飞主。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留高诺,地道東北人碌识。 一個月前我還...
    沈念sama閱讀 48,216評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像虱而,于是被迫代替她去往敵國和親筏餐。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,969評論 2 355

推薦閱讀更多精彩內(nèi)容