TF之DNN:TF利用简单7个神经元的三层全连接神经网络【2-3-2】实现降低损失到0.000以下
TF之DNN:TF利用简单7个神经元的三层全连接神经网络实现降低损失到0.000以下(输入、隐藏、输出层分别为 2、3 、 2 个神经元)
目录
输出结果
实现代码
输出结果
实现代码
# -*- coding: utf-8 -*-import tensorflow as tf
import os
import numpy as np#TF:TF实现简单的三层全连接神经网络(输入、隐藏、输出层分别为 2、3 、 2 个神经元)
#隐藏层和输出层的激活函数使用的是 ReLU 函数。该模型训练的样本总数为 512,每次迭代读取的批量为 10。全连接网络以交叉熵为损失函数,并使用 Adam 优化算法进行权重更新。
import tensorflow as tf
from numpy.random import RandomState
batch_size= 10
w1=tf. Variable (tf.random_normal([ 2 , 3 ],stddev= 1 ,seed= 1 ))
w2=tf. Variable (tf.random_normal([ 3 , 1 ],stddev= 1 ,seed= 1 ))
# None 可以根据batch 大小确定维度,在shape的一个维度上使用None
x=tf.placeholder(tf.float32,shape=( None , 2 ))
y=tf.placeholder(tf.float32,shape=( None , 1 ))
#激活函数使用ReLU
a=tf.nn.relu(tf.matmul(x,w1))
yhat=tf.nn.relu(tf.matmul(a,w2))
#定义交叉熵为损失函数,训练过程使用Adam算法最小化交叉熵
cross_entropy=-tf.reduce_mean(y*tf.log(tf.clip_by_value(yhat, 1e-10 , 1.0 )))
train_step=tf.train. AdamOptimizer ( 0.001 ).minimize(cross_entropy)
#tf.train.AdamOptimizer(learning_rate).minimize(cost_function) 是进行训练的函数,其中我们采用的是 Adam 优化算法更新权重,并且需要提供学习速率和损失函数这两个参数。
rdm= RandomState ( 1 )
data_size= 516
#生成两个特征,共data_size个样本
X=rdm.rand(data_size, 2 )#X=rdm.rand(512,2) 表示随机生成 512 个样本,每个样本有两个特征值。
#定义规则给出样本标签,所有x1+x2<1的样本认为是正样本,其他为负样本。Y,1为正样本
Y = [[int(x1+x2 < 1 )] for (x1, x2) in X]
with tf.Session() as sess:sess.run(tf.global_variables_initializer())print (sess.run(w1)) print (sess.run(w2))steps= 11000for i in range(steps):#选定每一个批量读取的首尾位置,确保在1个epoch内采样训练 start = i * batch_size % data_sizeend = min(start + batch_size,data_size)sess.run(train_step,feed_dict={x:X[start:end],y:Y[start:end]})if i % 1000 == 0 :training_loss= sess.run(cross_entropy,feed_dict={x:X,y:Y})print ( "在迭代 %d 次后,训练损失为 %g" %(i,training_loss))
TF之DNN:TF利用简单7个神经元的三层全连接神经网络【2-3-2】实现降低损失到0.000以下相关推荐
- TF之DNN:利用DNN【784→500→10】对MNIST手写数字图片识别数据集(TF自带函数下载)预测(98%)+案例理解DNN过程
TF之DNN:利用DNN[784→500→10]对MNIST手写数字图片识别数据集(TF自带函数下载)预测(98%)+案例理解DNN过程 目录 输出结果 案例理解DNN过程思路 代码设计 输出结果 案 ...
- 深度学习框架 TensorFlow:张量、自动求导机制、tf.keras模块(Model、layers、losses、optimizer、metrics)、多层感知机(即多层全连接神经网络 MLP)
日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) 安装 TensorFlow2.CUDA10.cuDNN7.6. ...
- 使用tensorflow实现全连接神经网络的简单示例,含源码
看别人的代码和自己写代码,两种的难度和境界真是不一样.昨天和今天尝试着写一个简单的全连接神经网络,用来学习一个基本的模型,在实现的过程中遇到了不少的坑,虽然我已经明白了其中的原理. 我想了一个教材上面 ...
- 简单的全连接神经网络(tensorflow实现)
简单的全连接神经网络,网络结构为2-2-1 代码如下: #encoding='utf-8' """ created on 2018-08-10 @author wt &q ...
- [转载] python bp神经网络 mnist_Python利用全连接神经网络求解MNIST问题详解
参考链接: Python中的单个神经元神经网络 本文实例讲述了Python利用全连接神经网络求解MNIST问题.分享给大家供大家参考,具体如下: 1.单隐藏层神经网络 人类的神经元在树突接受刺激信息后 ...
- 全连接神经网络(DNN)
最近想要学习深度学习模型,没有一上来就先学习CNN.RNN.LSTM,而是先学习全连接神经网络(Fully Connected Neural Network),原因非常简单,上述所说的各种神经网络都是 ...
- 深度学习——神经网络之DNN全连接神经网络、BP算法原理
深度学习--神经网络之DNN全连接神经网络.BP算法原理 深度学习--神经网络之DNN全连接神经网络.BP算法原理 1.啥是人工神经网络 2.神经网络的应用 3.神经网络的组成 3.1.神经元 3.2 ...
- TF girls系列(1)搭建二层全连接神经网络
搭建的是如下图所示的二层神经网络. 输入层的神经元个数由图片的维度决定,教程中使用的是32x32x3的彩色图片,然后灰度化,得到32x32的灰度图,故输入层神经元个数是1024个,隐藏层神经元个数可以 ...
- DNN(全连接神经网络)
一. DNN网络一般分为三层 1.输入层 2.隐藏层 3.输出层 简单网络如下: 二.前向传播 从第二层开始,每一个神经元都会获得它上一层所有神经元的结果.即每一个 y = wx + b的值. 具体分 ...
最新文章
- jq常用过滤器_Jquery过滤器
- chrome浏览器上传文件延迟_扫描识别工具Dynamic Web TWAIN使用教程:移动浏览器捕获(下)...
- 计算机应用教程 中级 平装,计算机应用中级教程
- 【pyqt5学习——信号与槽】实例计时器(解决界面卡顿问题)
- react(93)--成功置空
- 【Kafka】Kafka如何通过源码实现监控
- 图例解析四大UML关系图使用
- 极限编程的12个实践原则
- 方格稿纸(二维前缀和)
- 在线客服系统的功能有哪些是非常重要的?
- 【spring】切入点(Pointcut)、方面/切面(Aspect、Advisor)详解
- Kafka偏移量(Offset)管理
- JVM线程本地分配缓冲区(Thread Local Allocation Buffer)TLAB详解
- 【信号调理】ADC保护电路/ADC缓冲器
- 调用http时因为js问题遇到的一个报错
- android计时器秒,倒数计时器android秒不准确
- Photoshop系列_02简单制作一份海报
- for循环canvas渲染图片
- 关于如何使用打码平台识别验证码
- 麦麦养老:养老照护服务关键痛点及智慧养老解决路径实践案例解析
热门文章
- mysql 删除原理_MySQL权限原理及删除MySQL的匿名账户
- linux网卡驱动离线安装_新装Linux系统没有网卡驱动的解决办法和步骤
- 网易有道2017内推编程题
- centos7安装dhcp服务器并由客户端动态获取IP地址
- iOS系统 越狱系统还原(平刷)
- ASP excel导出/导入Access数据库(代码+实例下载)
- ArcGIS JS API加载GeoServer发布的WFS服务
- 干货 | 携程数据库发布系统演进之路
- 为什么不应该重写 service 方法?
- TensorFlow全新的数据读取方式:Dataset API入门教程