资讯专栏INFORMATION COLUMN

python深度神经网络tensorflow1.0主要参数和svm算法

89542767 / 383人阅读

  本文主要是给大家介绍了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})


  最后一条语句就是提取某层的数据输出作为特征。


  注意:这个程序并没有经过训练,因此提取出的参数只是初始化的参数。


  综上所述,这篇文章就给大家介绍完毕了,希望可以给大家带来帮助。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/128740.html

相关文章

  • python机器学习tensorflow1.0主要参数svm算法

      此篇文章首要给大家介绍了python机器学习tensorflow1.0主要参数和svm算法,感兴趣的小伙伴可以参考借鉴一下,希望可以有一定的帮助,祝愿大家多多的发展,尽快涨薪。  tf.trainable_variables()提取训练参数  在tf中,参与训练的参数可用tf.trainable_variables()提取出来,如: #取出所有参与训练的参数   params=tf.train...

    89542767 评论0 收藏0
  • 分享AI有道干货 | 126 篇 AI 原创文章精选(ML、DL、资源、教程)

    摘要:值得一提的是每篇文章都是我用心整理的,编者一贯坚持使用通俗形象的语言给我的读者朋友们讲解机器学习深度学习的各个知识点。今天,红色石头特此将以前所有的原创文章整理出来,组成一个比较合理完整的机器学习深度学习的学习路线图,希望能够帮助到大家。 一年多来,公众号【AI有道】已经发布了 140+ 的原创文章了。内容涉及林轩田机器学习课程笔记、吴恩达 deeplearning.ai 课程笔记、机...

    jimhs 评论0 收藏0
  • ⭐openGauss数据库源码解析系列文章—— DeepSQL⭐

    ❤️‍大家好,我是Gauss松鼠会,欢迎进来学习啦~❤️‍ 上一篇介绍了 8.6 AI查询时间预测的相关内容,本篇我们介绍8.7 DeepSQL、8.8 小结的相关精彩内容介绍。 8.7 DeepSQL 前面提到的功能均为AI4DB领域,AI与数据库结合还有另外一个大方向,即DB4AI。在本章中,我们将介绍openGauss的DB4AI能力,探索通过数据库来高效驱动AI任务的新途径。 使用场景 ...

    Atom 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<