python深度學習tensorflow1.0參數(shù)和特征提取
tf.trainable_variables()提取訓練參數(shù)
在tf中,參與訓練的參數(shù)可用 tf.trainable_variables()提取出來,如:
#取出所有參與訓練的參數(shù) params=tf.trainable_variables() print("Trainable variables:------------------------") #循環(huán)列出參數(shù) for idx, v in enumerate(params): print(" param {:3}: {:15} {}".format(idx, str(v.get_shape()), v.name))
這里只能查看參數(shù)的shape和name,并沒有具體的值。如果要查看參數(shù)具體的值的話,必須先初始化,即:
sess=tf.Session() sess.run(tf.global_variables_initializer())
同理,我們也可以提取圖片經(jīng)過訓練后的值。圖片經(jīng)過卷積后變成了特征,要提取這些特征,必須先把圖片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 #-----------------構(gòu)建網(wǎng)絡---------------------- #占位符 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) #---------------------------網(wǎng)絡結(jié)束--------------------------- #%% #取出所有參與訓練的參數(shù) params=tf.trainable_variables() print("Trainable variables:------------------------") #循環(huán)列出參數(shù) 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()) #提取最后一個全連接層的參數(shù) W和b W=sess.run(params[26]) b=sess.run(params[27]) #提取第二個全連接層的輸出值作為特征 fea=sess.run(dense2,feed_dict={x:img})
最后一條語句就是提取某層的數(shù)據(jù)輸出作為特征。
注意:這個程序并沒有經(jīng)過訓練,因此提取出的參數(shù)只是初始化的參數(shù)。
以上就是python深度學習tensorflow1.0參數(shù)和特征提取的詳細內(nèi)容,更多關于python tensorflow參數(shù)特征提取的資料請關注腳本之家其它相關文章!
相關文章
python中multiprosessing模塊的Pool類中的apply函數(shù)和apply_async函數(shù)的區(qū)別
這篇文章主要介紹了python中multiprosessing模塊的Pool類中的apply函數(shù)和apply_async函數(shù)的區(qū)別、文章圍繞主題的相關內(nèi)容展開詳細介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-06-06了解一下python內(nèi)建模塊collections
這篇文章主要介紹了Python內(nèi)建模塊——collections的相關資料,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2020-09-09Pandas之數(shù)據(jù)追加df.append方式
這篇文章主要介紹了Pandas之數(shù)據(jù)追加df.append方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08Python實現(xiàn)將Excel轉(zhuǎn)換成為image的方法
今天小編就為大家分享一篇Python實現(xiàn)將Excel轉(zhuǎn)換成為image的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10Python中函數(shù)的參數(shù)定義和可變參數(shù)用法實例分析
這篇文章主要介紹了Python中函數(shù)的參數(shù)定義和可變參數(shù)用法,以實例形式較為詳細的分析了Python中參數(shù)定義與可變參數(shù)的具體使用方法,需要的朋友可以參考下2015-06-06在Django中管理Users和Permissions以及Groups的方法
這篇文章主要介紹了在Django中管理Users和Permissions以及Groups的方法,Django是最具人氣的Python web開發(fā)框架,需要的朋友可以參考下2015-07-07