python+tensorflow,python用tensorflow训练标准模型
这篇文章主要为大家介绍了大蟒深度学习张量流1.0参数和特征提取,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
目录
TF。可训练变量()提取训练参数具体实例
tf.trainable_variables()提取训练参数
在法国南部(法国南部领地的缩写)中,参与训练的参数可用tf.trainable _ variables()提取出来,如:
#取出所有参与训练的参数
params=tf.trainable _ variables()
打印(可训练变量: -)
#循环列出参数
对于idx,枚举中的v(参数):
print( param { :3 } : { :15 } { } .format(idx,str(v.get_shape()),v.name))
这里只能查看参数的形状和姓名,并没有具体的值。如果要查看参数具体的值的话,必须先初始化,即:
sess=tf .会话()
sess。运行(TF。global _ variables _ initializer()
同理,我们也可以提取图片经过训练后的值。图片经过卷积后变成了特征,要提取这些特征,必须先把图片饲料进去。
具体实例
# -*-编码: utf-8 -*-
创建于2017年6月3日星期六12:07:59
@author:管理员
将张量流作为法国南部(French Southern Territories的缩写)导入
从撇除导入木卫一,转换
将数组作为铭牌导入
# - 构建网络-
#占位符
x=tf.placeholder(tf.float32,shape=[None,100,100,3],name=x )
y_=tf.placeholder(tf.int32,shape=[None,],name=y_ )
#第一个卷积层(100——gt50)
conv1=tf.layers.conv2d(
输入=x,
过滤器=32,
kernel_size=[5,5],
填充=相同,
激活=tf.nn.relu,
内核初始化器=TF。truncated _ normal _ initializer(stddev=0.01))
pool1=tf.layers.max_pooling2d(输入=conv1,pool_size=[2,2],步幅=2)
#第二个卷积层(50-gt;25)
conv2=tf.layers.conv2d(
输入=池1,
过滤器=64,
kernel_size=[5,5],
填充=相同,
激活=tf.nn.relu,
内核初始化器=TF。truncated _ normal _ initializer(stddev=0.01))
pool2=tf.layers.max_pooling2d(输入=conv2,pool_size=[2,2],跨距=2)
#第三个卷积层(25-gt;12)
conv3=tf.layers.conv2d(
输入=池2,
过滤器=128,
内核大小=[3,3],
填充=相同,
激活=tf.nn.relu,
内核初始化器=TF。truncated _ normal _ initializer(stddev=0.01))
pool3=tf.layers.max_pooling2d(输入=conv3,pool_size=[2,2],跨距=2)
#第四个卷积层(12-gt;6)
conv4=tf.layers.conv2d(
输入=池3,
过滤器=128,
内核大小=[3,3],
填充=相同,
激活=tf.nn.relu,
内核初始化器=TF。truncated _ normal _ initializer(stddev=0.01))
pool4=tf.layers.max_pooling2d(输入=conv4,pool_size=[2,2],跨距=2)
re1=TF。形状(池4,[-1,6 * 6 * 128])
#全连接层
dense1=tf.layers.dense(输入=re1,
单位=1024,
激活=tf.nn.relu,
内核初始化器=TF。truncated _ normal _ initializer(stddev=0.01),
内核_调节器=TF。nn。L2 _损失)
dense2=tf.layers.dense(输入=dense1,
单位=512,
激活=tf.nn.relu,
内核初始化器=TF。truncated _ normal _ initializer(stddev=0.01),
内核_调节器=TF。nn。L2 _损失)
logits=TF。层次。密集(输入=密集2,
单位=5,
激活=无,
内核初始化器=TF。truncated _ normal _ initializer(stddev=0.01),
内核_调节器=TF。nn。L2 _损失)
# - 网络结束-
#%%
#取出所有参与训练的参数
params=tf.trainable _ variables()
打印(可训练变量: -)
#循环列出参数
对于idx,枚举中的v(参数):
print( param { :3 } : { :15 } { } .format(idx,str(v.get_shape()),v.name))
#%%
#读取图片
img=io.imread(d:/cat.jpg )
#调整大小成100*100
img=transform.resize(img,(100,100))
#把三维变四维(100,100,3)-gt;(1,100,100,3)
img=img[np.newaxis,]
img=np.asarray(img,np.float32)
sess=tf。会话()
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参数和特征提取的细节。更多关于python tensorflow参数特征提取的信息,请关注盛行IT软件开发工作室的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。