TF之DNN:TF利用简单7个神经元的三层全连接神经网络【2-3-2】实现降低损失到0.000以下

简介: TF之DNN:TF利用简单7个神经元的三层全连接神经网络【2-3-2】实现降低损失到0.000以下

输出结果

image.png


实现代码

# -*- 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= 11000

   for  i  in  range(steps):

   #选定每一个批量读取的首尾位置,确保在1个epoch内采样训练        

       start = i * batch_size % data_size

       end = 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))


相关文章
|
6月前
|
机器学习/深度学习 存储 算法
深度神经网络中的BNN和DNN:基于存内计算的原理、实现与能量效率
深度神经网络中的BNN和DNN:基于存内计算的原理、实现与能量效率
283 0
|
3月前
|
机器学习/深度学习 人工智能 TensorFlow
神经网络深度剖析:Python带你潜入AI大脑,揭秘智能背后的秘密神经元
【8月更文挑战第1天】在当今科技飞速发展的时代,AI已成为日常生活中不可或缺的一部分。神经网络作为AI的核心,通过模拟人脑中的神经元连接方式处理复杂数据模式。利用Python及其强大的库TensorFlow,我们可以轻松构建神经网络模型。示例代码展示了如何建立一个含有两层隐藏层的简单神经网络,用于分类任务。神经网络通过反向传播算法不断优化权重和偏置,从而提高预测准确性。随着技术的进步,神经网络正变得越来越深、越来越复杂,能够应对更加艰巨的挑战,推动着AI领域向前发展。
46 2
|
5天前
|
机器学习/深度学习 自然语言处理 前端开发
前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
|
2月前
|
机器学习/深度学习 人工智能 TensorFlow
神经网络深度剖析:Python带你潜入AI大脑,揭秘智能背后的秘密神经元
【9月更文挑战第12天】在当今科技飞速发展的时代,人工智能(AI)已深入我们的生活,从智能助手到自动驾驶,从医疗诊断到金融分析,其力量无处不在。这一切的核心是神经网络。本文将带领您搭乘Python的航船,深入AI的大脑,揭秘智能背后的秘密神经元。通过构建神经网络模型,我们可以模拟并学习复杂的数据模式。以下是一个使用Python和TensorFlow搭建的基本神经网络示例,用于解决简单的分类问题。
47 10
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
深度剖析深度神经网络(DNN):原理、实现与应用
本文详细介绍了深度神经网络(DNN)的基本原理、核心算法及其具体操作步骤。DNN作为一种重要的人工智能工具,通过多层次的特征学习和权重调节,实现了复杂任务的高效解决。文章通过理论讲解与代码演示相结合的方式,帮助读者理解DNN的工作机制及实际应用。
|
3月前
|
机器学习/深度学习 PyTorch TensorFlow
【PyTorch】PyTorch深度学习框架实战(一):实现你的第一个DNN网络
【PyTorch】PyTorch深度学习框架实战(一):实现你的第一个DNN网络
152 1
|
3月前
|
机器学习/深度学习 人工智能 PyTorch
AI智能体研发之路-模型篇(五):pytorch vs tensorflow框架DNN网络结构源码级对比
AI智能体研发之路-模型篇(五):pytorch vs tensorflow框架DNN网络结构源码级对比
76 1
|
3月前
|
机器学习/深度学习 存储 自然语言处理
天啊!深度神经网络中 BNN 和 DNN 基于存内计算的传奇之旅,改写能量效率的历史!
【8月更文挑战第12天】深度神经网络(DNN)近年在图像识别等多领域取得重大突破。二进制神经网络(BNN)作为DNN的轻量化版本,通过使用二进制权重和激活值极大地降低了计算复杂度与存储需求。存内计算技术进一步提升了BNN和DNN的能效比,通过在存储单元直接进行计算减少数据传输带来的能耗。尽管面临精度和硬件实现等挑战,BNN结合存内计算代表了深度学习未来高效节能的发展方向。
47 1
|
3月前
|
机器学习/深度学习
DNN构建网络
【8月更文挑战第9天】DNN构建网络。
27 3
|
3月前
|
机器学习/深度学习 数据可视化 Python
如何可视化神经网络的神经元节点之间的连接?附有Python预处理代码
该博客展示了如何通过Python预处理神经网络权重矩阵并将其导出为表格,然后使用Chiplot网站来可视化神经网络的神经元节点之间的连接。
53 0
如何可视化神经网络的神经元节点之间的连接?附有Python预处理代码
下一篇
无影云桌面