深度学习二:使用TensorFlow搭建简单的全连接神经网络

本文介绍如何使用TensorFlow搭建一个简单的全连接神经网络,包括数据生成、网络结构定义、训练过程及结果展示。通过实验展示了利用ReLU激活函数和L2正则化防止过拟合的方法。

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

深度学习二:使用TensorFlow搭建简单的全连接神经网络

学习《TensorFlow实战Google深度学习框架》一书

在前一篇博客中,学习了使用python搭建简单的全连接神经网络

深度学习一:搭建简单的全连接神经网络

这里继续学习使用TensorFlow来搭建全连接神经网络。文章结束后依旧会贴上全部代码

实验环境:Python+TensorFlow+Pycharm

实验依旧采用随机生成的数据集,用随机生成的x来拟合随机生成的y

首先是引入并生成随机数据:

import tensorflow as tf
from numpy.random import RandomState
import matplotlib.pyplot as plt

# 随机生成数据集,并自定义标签
rdm = RandomState(1)
dataset_size = 128  # 数据集大小
X = rdm.rand(dataset_size, 2)
Y = [[int(x1+x2 < 1)] for (x1, x2) in X]  # 生成标签

生成的输入X维度为(128,2),标签Y的维度为(128,1),可以认为输入为产品两个属性值x1和x2,如果x1+x2<1则被认为是合格产品,标签为Y为1,否则标签Y为0。

定义输入输出:

# 定义输入和标签(真实值)
x = tf.placeholder("float32", [None, 2])
y_ = tf.placeholder("float32", [None, 1])

这里的x和y_用来接收输入的X和Y

设置神经网络的参数:

# 权重
W1 = tf.Variable(tf.random_normal([2, 3], stddev=1, seed=1))
W2 = tf.Variable(tf.random_normal([3, 1], stddev=1, seed=1))
# 偏置
b1 = tf.Variable(tf.zeros([3]))
b2 = tf.Variable(tf.zeros([1]))

这里定义的是但隐层神经网络,w1和b1是隐藏层的权重和偏置,w2和b2是输出层的权重和偏置。设计隐藏层有3个隐藏节点,所以,w1的维度为(2,3)。Tenorflow提供了多种随机数生成的函数,这里使用tf.r的andom_normal()生成服从正态分布的随机数,tf.zeros则生成全0数组。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值