本文主要是給大家介紹了python深度神經網絡tensorflow1.0主要參數和svm算法,感興趣的小伙伴可以參考借鑒一下,希望可以有一定的幫助,祝愿大家盡可能不斷進步,盡早漲薪
tf.trainable_variables()獲取練習主要參數
在tf中,參加鍛煉的主要參數可用tf.trainable_variables()分離出來,如:
#取出所有參與訓練的參數 params=tf.trainable_variables() print("Trainable variables:------------------------") #循環列出參數 for idx,v in enumerate(params): print("param{:3}:{:15}{}".format(idx,str(v.get_shape()),v.name))
這里只能查看參數的shape和name,并沒有具體的值。如果要查看參數具體的值的話,必須先初始化,即:
sess=tf.Session() sess.run(tf.global_variables_initializer())
同理,我們也可以提取圖片經過訓練后的值。圖片經過卷積后變成了特征,要提取這些特征,必須先把圖片feed進去。
具體實例
#-*-coding:utf-8-*- """ Created on Sat Jun 3 12:07:59 2017 author:Administrator """ import tensorflow as tf from skimage import io,transform import numpy as np #-----------------構建網絡---------------------- #占位符 x=tf.placeholder(tf.float32,shape=[None,100,100,3],name='x') y_=tf.placeholder(tf.int32,shape=[None,],name='y_') #第一個卷積層(100——>50) conv1=tf.layers.conv2d( inputs=x, filters=32, kernel_size=[5,5], padding="same", activation=tf.nn.relu, kernel_initializer=tf.truncated_normal_initializer(stddev=0.01)) pool1=tf.layers.max_pooling2d(inputs=conv1,pool_size=[2,2],strides=2) #第二個卷積層(50->25) conv2=tf.layers.conv2d( inputs=pool1, filters=64, kernel_size=[5,5], padding="same", activation=tf.nn.relu, kernel_initializer=tf.truncated_normal_initializer(stddev=0.01)) pool2=tf.layers.max_pooling2d(inputs=conv2,pool_size=[2,2],strides=2) #第三個卷積層(25->12) conv3=tf.layers.conv2d( inputs=pool2, filters=128, kernel_size=[3,3], padding="same", activation=tf.nn.relu, kernel_initializer=tf.truncated_normal_initializer(stddev=0.01)) pool3=tf.layers.max_pooling2d(inputs=conv3,pool_size=[2,2],strides=2) #第四個卷積層(12->6) conv4=tf.layers.conv2d( inputs=pool3, filters=128, kernel_size=[3,3], padding="same", activation=tf.nn.relu, kernel_initializer=tf.truncated_normal_initializer(stddev=0.01)) pool4=tf.layers.max_pooling2d(inputs=conv4,pool_size=[2,2],strides=2) re1=tf.reshape(pool4,[-1,6*6*128]) #全連接層 dense1=tf.layers.dense(inputs=re1, units=1024, activation=tf.nn.relu, kernel_initializer=tf.truncated_normal_initializer(stddev=0.01), kernel_regularizer=tf.nn.l2_loss) dense2=tf.layers.dense(inputs=dense1, units=512, activation=tf.nn.relu, kernel_initializer=tf.truncated_normal_initializer(stddev=0.01), kernel_regularizer=tf.nn.l2_loss) logits=tf.layers.dense(inputs=dense2, units=5, activation=None, kernel_initializer=tf.truncated_normal_initializer(stddev=0.01), kernel_regularizer=tf.nn.l2_loss) #---------------------------網絡結束--------------------------- #%% #取出所有參與訓練的參數 params=tf.trainable_variables() print("Trainable variables:------------------------") #循環列出參數 for idx,v in enumerate(params): print("param{:3}:{:15}{}".format(idx,str(v.get_shape()),v.name)) #%% #讀取圖片 img=io.imread('d:/cat.jpg') #resize成100*100 img=transform.resize(img,(100,100)) #三維變四維(100,100,3)-->(1,100,100,3) img=img[np.newaxis,:,:,:] img=np.asarray(img,np.float32) sess=tf.Session() sess.run(tf.global_variables_initializer()) #提取最后一個全連接層的參數W和b W=sess.run(params[26]) b=sess.run(params[27]) #提取第二個全連接層的輸出值作為特征 fea=sess.run(dense2,feed_dict={x:img})
最后一條語句就是提取某層的數據輸出作為特征。
注意:這個程序并沒有經過訓練,因此提取出的參數只是初始化的參數。
綜上所述,這篇文章就給大家介紹完畢了,希望可以給大家帶來幫助。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/128740.html
此篇文章首要給大家介紹了python機器學習tensorflow1.0主要參數和svm算法,感興趣的小伙伴可以參考借鑒一下,希望可以有一定的幫助,祝愿大家多多的發展,盡快漲薪。 tf.trainable_variables()提取訓練參數 在tf中,參與訓練的參數可用tf.trainable_variables()提取出來,如: #取出所有參與訓練的參數 params=tf.train...
摘要:值得一提的是每篇文章都是我用心整理的,編者一貫堅持使用通俗形象的語言給我的讀者朋友們講解機器學習深度學習的各個知識點。今天,紅色石頭特此將以前所有的原創文章整理出來,組成一個比較合理完整的機器學習深度學習的學習路線圖,希望能夠幫助到大家。 一年多來,公眾號【AI有道】已經發布了 140+ 的原創文章了。內容涉及林軒田機器學習課程筆記、吳恩達 deeplearning.ai 課程筆記、機...
???大家好,我是Gauss松鼠會,歡迎進來學習啦~??? 上一篇介紹了 8.6 AI查詢時間預測的相關內容,本篇我們介紹8.7 DeepSQL、8.8 小結的相關精彩內容介紹。 8.7 DeepSQL 前面提到的功能均為AI4DB領域,AI與數據庫結合還有另外一個大方向,即DB4AI。在本章中,我們將介紹openGauss的DB4AI能力,探索通過數據庫來高效驅動AI任務的新途徑。 使用場景 ...
閱讀 911·2023-01-14 11:38
閱讀 878·2023-01-14 11:04
閱讀 740·2023-01-14 10:48
閱讀 1982·2023-01-14 10:34
閱讀 942·2023-01-14 10:24
閱讀 819·2023-01-14 10:18
閱讀 499·2023-01-14 10:09
閱讀 572·2023-01-14 10:02