Tensorflow常见网络接口介绍(一)

原文地址:http://siligence.ai/article-463-1.html
深度学习最常见的神经网络结构大概有DNN,CNN,RNN,我们可以简单的介绍一下tensorflow中关于上述网络中的DNN以及CNN的简单实现:

关于DNN:
全连接神经网络在我看来主要有两个作用,一个是提取高维特征,另外一个是进行维度变换。在tensorflow中实现较为简单,具体如下所示
with tf.name_scope(‘dnn’):
weight = tf.Variable(tf.truncated_normal([n_filter,numClasses]))
bias = tf.Variable(tf.constant(0.1,shape=[numClasses]))
prediction = (tf.matmul(data,weight) + bias)
weight和bias是tensorflow中变量有两种初始化的方法,tf.Variable()和tf.get_variable(),前者使用简单,后者中定义了很多前者没有方法,两者看自己喜欢进行选取。
需要注意的是里面矩阵数据:f(X*w+b),X为[M,N],w[N,O],b[M,O]。M在大部分情况是一个batch_size的大小。

关于卷积神经网络(CNN):
with tf.name_scope(‘conv1’):
file_shape = [filter_size,numDimensions,1,n_filter]
W_c = tf.Variable(tf.truncated_normal(file_shape,stddev=0.1),name=‘W_c’)
b_c = tf.Variable(tf.truncated_normal([FLAGS.n_filter],name=“b_c”))
conv = tf.nn.conv2d(data,W_c,strides=[1,1,1,1],padding=“VALID”,name=“conv”)
h = tf.nn.relu(tf.nn.bias_add(conv,b_c),name=“relu”)
卷积神经网络在我看来有两个作用:(1)提取周围的一片特征,(2)通过通道数的变化,增加或者减少特征的个数(大部分会增加)。
关于tf.nn.conv2d(data,W_c,strides,padding)四个参数中,data是数据,W_c是kernal的大小以及Kernal的数量,每一个通道一个Kernal,stride是移动的步长,padding是填充方式。
卷积神经网络之后往往特征数量增多,容易出现过拟合,所以需要进行池化操作以此减少特征的数量。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值