搭建解决三好学生成绩问题的神经网络01---初步认识

本文主要是介绍搭建解决三好学生成绩问题的神经网络01---初步认识,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 问题背景:

           某学校要评选三好学生,总分计算规则德育分占60%,智育分占30%,体育分占10%。即总分=德育分*0.6+智育分*0.3+体育分*0.1。

问题引入:

          在该背景下,现在有两个孩子家长想知道自己的孩子是不是三好学生,但是学校没有告诉家长总分的计算规则。家长们猜测出计算总分的方法肯定是3项分数乘以不同的权重值相加获得,唯一不知道的就是这几个权重值具体多少?我们可以通过神经网络方法大致推算这3个权重分别多少。

问题分析:

已经条件

      家长1的孩子的德育分90,智育分80,体育分70,总分85

      家长2的孩子的德育分98,智育分95,体育分87,总分96

      从数学角度来看,根据已知的条件我们可以设德育分占w1,智育分占w2,体育分占w3。即

                  90*w1+80*w2+70*w3=85

                  98*w1+87*w2+96*w3=96

       数学中解方程的方法来看,两个式子一共有3个未知数,理论上需要三个不等价式子,可以解出答案。但是现在我们只用这两个方程。那么我们可以考虑使用神经网络的方法来尝试进行解答这个问题。

神经网络介绍:

神经网络模型一般由1个输入层,1个或者多个隐藏层,1个输出层构成。

一般来说

        输入层  是描述输入数据的形态的,用方块表示每条输入数据的一个数,叫作输入节点。输入节点一般用x来命名。

        隐藏层   是描述我们设计神经网络模型结构中最重要的部分,隐藏层可以有多个,每一层多有1个或者多个神经元,用圆表示,叫作神经元节点或者隐藏节点(节点),每一个节点都是接收上一层传来的数据并进行一定的运算后向下一层输出数据。

        输出层  是描述输出数据的形态的,用菱形表示一个或者多个输出节点,输出节点一般用y来命名。

代码实现:

根据问题分析,我们可以使用神经网络来简单的实现

#Author:北京
#QQ:838262020
#time:2019/9/13
''''
三好学生成绩问题的引入
总分 = 德育分*60% + 智得分*30% + 体育分 *10%
'''
# 导入TensorFlow包
import tensorflow as tf# 定义三个占位符,数据类型为浮点型,我们把可变参数的初始值都设为0.1
x1 = tf.placeholder(dtype=tf.float32)
x2 = tf.placeholder(dtype=tf.float32)
x3 = tf.placeholder(dtype=tf.float32)# 定义三个可变参数,数据类型为浮点型
w1 = tf.Variable(0.1,dtype=tf.float32)
w2 = tf.Variable(0.1, dtype=tf.float32)
w3 = tf.Variable(0.1, dtype=tf.float32)# 定义隐藏层n1,n2,n3
n1= w1*x1
n2 = w2*x2
n3 = w3*x3y = n1+n2+n3# 定义输出层
# 会话对象,有个会话对象我们的神经网络可以进行正常运转了,每次神经网络定义完,都要定义一个会话对
# 象,才能开始训练这个模型或者用训练好的模型去预测计算。
sess = tf.Session()# 会话对象神经网络的第一步---所有可变参数初始化,也就是给所有可变参数一个各自的初始值。
# 初始化可变参数,我们前面把可变参数初始值都设为0.1
init = tf.global_variables_initializer()
sess.run(init)# 输出要查看的变量和喂(输入)数据,执行一次神经网络计算
result = sess.run([x1,x2,x3,w1,w2,w3,y],feed_dict={x1:90,x2:80,x3:70})
print(result)

输出结果

[array(90.0, dtype=float32), array(80.0, dtype=float32), array(70.0, dtype=float32), 0.1, 0.1, 0.1, 24.0]

我们可以知道定义的w1,w2,w3的初始值都是0.1,经过计算90*0.1+80*0.1+70*0.1=9+8+7=24,结果正确。

这篇关于搭建解决三好学生成绩问题的神经网络01---初步认识的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/621473

相关文章

Linux虚拟机不显示IP地址的解决方法(亲测有效)

《Linux虚拟机不显示IP地址的解决方法(亲测有效)》本文主要介绍了通过VMware新装的Linux系统没有IP地址的解决方法,主要步骤包括:关闭虚拟机、打开VM虚拟网络编辑器、还原VMnet8或修... 目录前言步骤0.问题情况1.关闭虚拟机2.China编程打开VM虚拟网络编辑器3.1 方法一:点击还原VM

Flask解决指定端口无法生效问题

《Flask解决指定端口无法生效问题》文章讲述了在使用PyCharm开发Flask应用时,启动地址与手动指定的IP端口不一致的问题,通过修改PyCharm的运行配置,将Flask项目的运行模式从Fla... 目录android问题重现解决方案问题重现手动指定的IP端口是app.run(host='0.0.

Android WebView无法加载H5页面的常见问题和解决方法

《AndroidWebView无法加载H5页面的常见问题和解决方法》AndroidWebView是一种视图组件,使得Android应用能够显示网页内容,它基于Chromium,具备现代浏览器的许多功... 目录1. WebView 简介2. 常见问题3. 网络权限设置4. 启用 JavaScript5. D

使用DeepSeek搭建个人知识库(在笔记本电脑上)

《使用DeepSeek搭建个人知识库(在笔记本电脑上)》本文介绍了如何在笔记本电脑上使用DeepSeek和开源工具搭建个人知识库,通过安装DeepSeek和RAGFlow,并使用CherryStudi... 目录部署环境软件清单安装DeepSeek安装Cherry Studio安装RAGFlow设置知识库总

Seata之分布式事务问题及解决方案

《Seata之分布式事务问题及解决方案》:本文主要介绍Seata之分布式事务问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Seata–分布式事务解决方案简介同类产品对比环境搭建1.微服务2.SQL3.seata-server4.微服务配置事务模式1

mysql关联查询速度慢的问题及解决

《mysql关联查询速度慢的问题及解决》:本文主要介绍mysql关联查询速度慢的问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql关联查询速度慢1. 记录原因1.1 在一次线上的服务中1.2 最终发现2. 解决方案3. 具体操作总结mysql

Linux搭建Mysql主从同步的教程

《Linux搭建Mysql主从同步的教程》:本文主要介绍Linux搭建Mysql主从同步的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux搭建mysql主从同步1.启动mysql服务2.修改Mysql主库配置文件/etc/my.cnf3.重启主库my

国内环境搭建私有知识问答库踩坑记录(ollama+deepseek+ragflow)

《国内环境搭建私有知识问答库踩坑记录(ollama+deepseek+ragflow)》本文给大家利用deepseek模型搭建私有知识问答库的详细步骤和遇到的问题及解决办法,感兴趣的朋友一起看看吧... 目录1. 第1步大家在安装完ollama后,需要到系统环境变量中添加两个变量2. 第3步 “在cmd中

Python中Windows和macOS文件路径格式不一致的解决方法

《Python中Windows和macOS文件路径格式不一致的解决方法》在Python中,Windows和macOS的文件路径字符串格式不一致主要体现在路径分隔符上,这种差异可能导致跨平台代码在处理文... 目录方法 1:使用 os.path 模块方法 2:使用 pathlib 模块(推荐)方法 3:统一使

一文教你解决Python不支持中文路径的问题

《一文教你解决Python不支持中文路径的问题》Python是一种广泛使用的高级编程语言,然而在处理包含中文字符的文件路径时,Python有时会表现出一些不友好的行为,下面小编就来为大家介绍一下具体的... 目录问题背景解决方案1. 设置正确的文件编码2. 使用pathlib模块3. 转换路径为Unicod