2023.11.28 使用tensorflow进行“三好“权重分析

2023.11.28 使用tensorflow进行"三好"权重分析

这是最基础的一个神经网络问题。许久没有再使用,用来做恢复训练比较好。

x1w1 + x2w2 +x3*w3 = y,已知x1,x2,x3和y,求w1,w2,w3
这是一个三元一次方程,正常需要三组数据就能准确求出解,但是如果要在仅有两组数据的情况下进行求解,除使用暴力法外,采用神经网络是一个不错的选择,网络模型图如下
在这里插入图片描述

'''尝试最基础的tensorflow应用:三好学生的"三好"权重分析问题:"三好"指的是品德好,学习好,体育好,有两组分数和各组分数综合值,求每个分数的权重
'''import tensorflow.compat.v1 as tf      # tf2.0版本改动太大,如果要按1.X版本的格式写需要调用这个库
tf.disable_v2_behavior()               # tf2.0版本改动太大,如果要按1.X版本的格式写需要调用这个库x1 = tf.placeholder(dtype=tf.float32)
x2 = tf.placeholder(dtype=tf.float32)
x3 = tf.placeholder(dtype=tf.float32)
yTrain = tf.placeholder(dtype=tf.float32)
'''在TensorFlow 1.X中,创建占位符并在tf.Session实例化时为其提供实际值。但是,从TensorFlow2.0开始,默认情况下启用了Eager Execution,因此“占位符”的概念没有意义,因为操作是立即计算的(而不是与旧范例不同)
'''w1 = tf.Variable(0.1,dtype=tf.float32)                  # 0.1是w1的初始化参数
w2 = tf.Variable(0.1,dtype=tf.float32)
w3 = tf.Variable(0.1,dtype=tf.float32)n1 = x1 * w1
n2 = x2 * w2
n3 = x3 * w3y = n1 + n2 + n3loss = tf.abs(y - yTrain)           # 使用.abs(绝对值),是使实际值和目标值差距最小,而不是损失函数数字最小
learning_rate = 0.001optimizer = tf.train.RMSPropOptimizer(learning_rate)        # 选择优化器/分类器train = optimizer.minimize(loss)                # 训练模型,目标是loss最小sess = tf.Session()
init = tf.global_variables_initializer()        # 初始化前述张量(tf.)
sess.run(init)for i in range(5000):result = sess.run([train,x1,x2,x3,w1,w2,w3,y,yTrain,loss],feed_dict={x1:90,x2:80,x3:70,yTrain:85})print(result)result = sess.run([train, x1, x2, x3, w1, w2, w3, y, yTrain, loss], feed_dict={x1: 98, x2: 95, x3: 87, yTrain: 96})print(result)

循环5000次,输出结果
在这里插入图片描述

# 输出结果解释
第一个元素 None 表示训练操作 train 的执行结果为空。
第二个元素 array(98., dtype=float32) 表示输入占位符 x1 的值为 98。
第三个元素 array(95., dtype=float32) 表示输入占位符 x2 的值为 95。
第四个元素 array(87., dtype=float32) 表示输入占位符 x3 的值为 87。
第五个元素 0.5828438 表示权重变量 w1 的值为 0.5828438。
第六个元素 0.2860972 表示权重变量 w2 的值为 0.2860972。
第七个元素 0.13144642 表示权重变量 w3 的值为 0.13144642。
第八个元素 96.03325 表示模型输出 y 的值为 96.03325。
第九个元素 array(96., dtype=float32) 表示目标输出占位符 yTrain 的值为 96。
最后一个元素 0.0332489 表示损失函数 loss 的值为 0.0332489。

对比循环500次,输出结果,循环500次loss尚未稳定,和最终结果存在较大偏差
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/186132.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软件工程--需求工程--学习笔记(超详细)

软件需求工程是软件开发周期的第一个阶段,也是关系到软件开发成败最关键阶段,本章讲解需求的基础知识和需求工程的关键活动。这些知识对于结构化方法、面向对象方法、面向服务方法等都是适用的 本文参考教材:沈备军老师的《软件工程原理》 目…

js提取iconfont项目的图标

iconfont 可以让我们轻松使用字体图标,比如使用 iconfont 提供的 js,就可以愉快的码代码了。 //at.alicdn.com/t/c/font_xxxxx.js通常公司会有提供一套图标供所有系统使用,比如图标库里有 1000 个图标,但某个项目只需要使用 10 个…

系列十九、Spring实例化bean的方式

一、概述 所谓实例化bean,大白话讲就是Spring如何把这一个个的普通的Java对象创建为Spring bean的。 二、方式 Spring中实例化bean常用的有以下四种,即: ① 构造器方式; ② 静态工厂方式; ③ 实例工厂方式;…

关于mybatis插入返回主键id和SpringBoot事务注解自调用演示

文章目录 一. 插入返回任意规则主键ID二. SpringBoot自调用事务2.1 场景12.2 场景2 自调用结论总结 一. 插入返回任意规则主键ID 实体对象 TableName("bank") Data public class Entity {TableId("id")Integer id;TableField("money")Integer …

超详细!Opencv人脸识别!附源码!

一、新建环境 注意!!确定后需要关闭项目,重新打开,终端的环境才会变化!! 二、下载安装包(只需要3个即可) 1. 下载dlib包 pip install dlib-19.19.0-cp38-cp38-win_amd64.whl.whl …

GoLang语言Map用法

目录 Map 的内部结构 Map 的操作 1. 创建和初始化 2. 添加键值对 3. 获取值 4. 删除键值对 5. 遍历 map 6. 检查键是否存在 注意事项 在Go语言中,map 是一种无序的键值对集合,其中每个键必须是唯一的。以下是关于 map 内部结构和操作的详细解释…

Linux 如何在文件中查找指定内容,grep的用法

Linux 如何在文件中查找指定内容 1、 如我们 查找 log_file_catalina.out 文件中,包含 ‘总数:900’ 的字符内容 2、 在日志中查看 83910_law_21CFBC7EB25B1FF60255FE7F4BE1BCCF1CE726F6_0.bdyhf 的相关内容 grep 83910_law_21CFBC7EB25B1FF60255FE7…

互联网协议入门( 通俗易懂的网络协议层次结构讲解)

转载:互联网协议入门( 通俗易懂的网络协议层次结构讲解)-CSDN博客 我们每天使用互联网,你是否想过,它是如何实现的? 全世界几十亿台电脑,连接在一起,两两通信。上海的某一块网卡送…

人工智能概论

一、关键技术 人工智能包含了七项关键技术: 1. 机器学习: 机器学习是研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,是人工智能技术的核心。 从学习模式划分,分…

浅谈java中的锁

根据标准锁的分类 偏向锁 / 轻量级锁 / 重量级锁;可重入锁 / 非可重入锁;共享锁 / 独占锁;公平锁 / 非公平锁;悲观锁 / 乐观锁;自旋锁 / 非自旋锁;可中断锁 / 不可中断锁。 偏向锁 / 轻量级锁 / 重量级锁…

【管理运筹学】背诵手册(六)| 图与网络分析(最大流问题,最小费用最大流问题)

六、图与网络分析 最大流问题 最大流问题的数学规划模型为: max ⁡ v f 12 f 13 { f 12 f 13 − f 57 − f 67 0 f 13 f 23 f 34 f 35 . . . 0 ≤ f i j ≤ c i j \max vf_{12}f_{13}\\ \begin{cases} f_{12}f_{13}-f_{57}-f_{67}0 \\ f_{13}f_{23}f_{34}f…

虚拟数据生成_以Python为工具

生成虚拟数据_以Python为工具 生成虚拟数据技术在现实生活中具有多个重要的应用领域。它为数据隐私保护、机器学习算法开发、数据处理和可视化等方面提供了实用且有价值的解决方案。尤其是能满足定制化需求的虚拟数据,在预期的方向上让数据定向随机。 &#x1f339…

原生GPT本地及云端部署方式保姆级教程

前提条件 部署必须要有一个超过1年的Github账号 本地服务部署 运行效果 部署方法 下载安装包 暂时无法在飞书文档外展示此内容 GitHub授权登录: https://dash.pandoranext.com/ 登录后是这个样子: 复制下面红框里面这个License Id 编辑Config.js…

flutter开发实战-轮播Swiper更改Custom_layout样式中Widget层级

flutter开发实战-轮播Swiper更改Custom_layout样式中Widget层级 在之前的开发过程中,需要实现卡片轮播效果,但是卡片轮播需要中间大、两边小一些的效果,这里就使用到了Swiper。具体效果如视频所示 添加链接描述 这里需要的效果是中间大、两边…

面试问题--Linux网络编程

Linux网络编程涉及在Linux操作系统上使用套接字(socket)等工具进行网络通信。以下是一些与Linux网络编程相关的主题: 套接字编程: 在Linux中,套接字是网络编程的基础。可以使用C语言中的socket库来创建套接字。套接字…

【人工智能Ⅰ】实验3:蚁群算法

实验3 蚁群算法的应用 一、实验内容 TSP 问题的蚁群算法实现。 二、实验目的 1. 熟悉和掌握蚁群算法的基本概念和思想; 2. 理解和掌握蚁群算法的参数选取,解决实际应用问题。 三、实验原理 1.算法来源 蚁群算法的基本原理来源于自然界…

C++学习 --谓词

目录 1, 什么是谓词 1-1, 一元谓词 1-2, 二元谓词 1, 什么是谓词 返回bool类型的仿函数, 叫着谓词, 分为一元谓词和二元谓词 1-1, 一元谓词 operator()接收一个参数,叫着一元谓…

python第1天之常识及环境安装

前言: 当谈到编程语言的流行度时,Python绝对是其中之一。Python是一种高级编程语言,其语法简单易懂,适用于各种不同的应用领域,包括Web开发、数据分析、人工智能等。在本文中,我们将探讨一些关于Pyth…

【JavaScript】3.2 JavaScript性能优化

文章目录 1. 避免全局查找2. 避免不必要的属性查找3. 使用快速的JavaScript方法4. 避免不必要的DOM操作5. 使用Web Workers进行后台处理总结 性能优化是任何编程语言的重要组成部分,JavaScript也不例外。在这个章节中,我们将探讨如何优化JavaScript代码&…

GAN:WGAN

论文:https://arxiv.org/pdf/1701.07875.pdf 发表:2017 WGAN 算法流程 从GAN 到 WGAN 的转变 相比于原始 GAN,WGAN 只需要修改以下几点,就能使得训练更稳定,生成质量更高: 1. 此时的判别器相当于做回归…