【深度学习】用tensorflow搭建自己的神经网络

【深度学习】用tensorflow搭建自己的神经网络

1.创建一个神经网络层

2.运用神经网络层搭建完整神经网络

3.显示训练过程

4.tensorboard展示神经网络图


  之前已经讲过了神经网络的基本知识:【机器学习】神经网络介绍  和 【深度学习】卷积神经网络入门

  本节用tensorflow来搭建一个神经网络,实现y=x*x+1的拟合。

1.创建一个神经网络层

   在之前的学习中,了解到一个完整的神经网络,包括输入层、卷积层、池化层、全连接层等部分。在tensorflow中,也已经有了专门的卷积层函数,例如:tf.nn.conv2d(卷积)、tf.nn.max_pool(池化)等。

   那如果想学习自己搭建一个神经网络层,需要包含哪些部分呢?

   如下图所示,一个神经网络层需要有数据输入、数据输出、激活函数

            

 创建一个神经网络层

#创建一个神经网络层
def add_layer(input,in_size,out_size,activation_function=None):
    """
    :param input: 数据输入
    :param in_size: 输入大小(前一层神经元个数)
    :param out_size: 输出大小(本层神经元个数)
    :param activation_function: 激活函数(默认没有)
    :return:
    """
    Weight=tf.Variable(tf.random_normal([in_size,out_size]) )
    biases=tf.Variable(tf.zeros([1,out_size]) +0.1 )
    W_mul_x_plus_b=tf.matmul(input,Weight) + biases
    #根据是否有激活函数
    if activation_function == None:
        output=W_mul_x_plus_b
    else:
        output=activation_function(W_mul_x_plus_b)
    return output

分析:

    参数如下,

        input:输入个数

        in_size: 当前层的输入的个数

        out_size:当前层的输出的个数(即当前层神经元的个数)

        activation_function:激活函数(输入层无激活函数,仅起到传递信号的作用,卷积层、池化层等含有激活函数。)

    内部运算如下:

        权值初始化(Weight):大小为 in_size * out_size;

         偏置初始化(biases):大小为out_size(即本层神经元的个数)

  • 51
    点赞
  • 289
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值