中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python深度學習tensorflow1.0參數和特征提取的方法

發布時間:2022-06-30 13:56:12 來源:億速云 閱讀:171 作者:iii 欄目:開發技術

這篇文章主要介紹“python深度學習tensorflow1.0參數和特征提取的方法”,在日常操作中,相信很多人在python深度學習tensorflow1.0參數和特征提取的方法問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”python深度學習tensorflow1.0參數和特征提取的方法”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

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})

最后一條語句就是提取某層的數據輸出作為特征。

注意:這個程序并沒有經過訓練,因此提取出的參數只是初始化的參數。

到此,關于“python深度學習tensorflow1.0參數和特征提取的方法”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

枣阳市| 乌鲁木齐县| 德庆县| 合阳县| 宜良县| 石楼县| 三穗县| 梅河口市| 宁远县| 永和县| 米易县| 霍州市| 赤水市| 麦盖提县| 怀集县| 黔江区| 垫江县| 称多县| 高雄县| 河津市| 滦南县| 清苑县| 翼城县| 中宁县| 平利县| 错那县| 三穗县| 合肥市| 视频| 黔东| 保康县| 体育| 西华县| 东港市| 工布江达县| 思南县| 石家庄市| 合阳县| 顺平县| 岱山县| 兴宁市|