tensorflow之神经网络层添加函数

该文章详细介绍了如何在TensorFlow中构建一个包含隐含层的神经网络,包括定义添加层的函数、创建数据集、定义网络结构、设置损失函数、优化器和可视化计算图的操作。通过实例展示了神经网络的构建过程,并提供了使用TensorBoard进行网络结构和结果可视化的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这一篇文章是对神经网络的一个深入探索,虽然都是简单的例子,但是足以了解神经网络的架构。
一、包含一个隐含层的网络实现
1.定义添加层函数
在前面的浅层神经网络(http://blog.youkuaiyun.com/xuan_zizizi/article/details/77799868)里面不涉及隐含层,只有输入输出层,而这篇文章将继续描述如何为神经网络添加新的层,以及如何定义添加层的函数。

#encoding=utf-8
import tensorflow as tf
def add_layer(inputs,in_size,out_size,activation_function=None): #添加一个层,输入值,输入尺寸,输出尺寸,以及激励函数,此处None默认为线性的激励函数
    w_pre = tf.Variable(tf.random_normal([in_size,out_size])) #定义权值矩阵,in_size行,out_size列,随机初始权值
    b_pre = tf.Variable(tf.zeros([1,out_size])+0.1) #定义一个列表,一行,out_size列,值全部为0.1
    y_pre = tf.matmul(inputs,w_pre)+b_pre  #w_pre*inputs+b_pre,预测值,未激活
    if activation_function is None
        outputs = y_pre #结果为线性输出,激活结果
    else:
        outputs = activation_function(y_pre)#激励函数处理
    return outputs

2.定义数据集
这里可以定义随机数据,通过神经网络学习来完成线性拟合功能。

#定义数据集
x_real = np.linspace(-1,1,300)[:,np.newaxis]#[-1,1]之间有300个值,后面[]表示维度,即有300行
noise = np.random.normal(0,0.05,x_real.shape)#噪声均值为0,方差为0.05,与x_data格式相同
y_real = np.square(x_real)-0.5 + noise
#定义placeholder接收数据
xs = tf.placeholder(tf.float32,[None,1],name='x_input')
ys = tf.placeholder(tf.float32,[None,1],name='y_input')

3.定义隐含层,神经元数目为10

#隐含层输入层input(1个神经元):输入1个神经元,隐藏层10个神经元
l1 = add_layer(xs,1,10,activation_function = tf.nn.relu)

4.定义输出层,隐含层l1的输出为输出层predicti里写代码片输出层

prediction = add_layer(l1,10,1,activation_function = None)
#输出层也是1个神经元

5.定义loss函数

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值