神经网络实现4位加法器上海大学智能计算系统

深度学习——感知机:多层感知机(multi-layered perceptron)图文详解 多层感知机一,多层感知机1.1 现在已有的门电路组合1.2 异或门的实现二,从与非门到计算机三,总结 一,多层感知机   在上一篇深度学习——感知机(perceptron)图文详解中我们已经讨论完了简单感知机的原理和实现了,同时也知道了简单感知机的局限性了,不能表示异或门这点让人深感遗憾。今天我们就将介绍多层感知机,它可以通过“叠加层”来表示异或门。不过,我们先暂时不考虑叠加层具体是指什么,先从其他视角来思考一下异或门的问题 1.1 现在已有的门电路组合   异或门的制作方法有很多,其中之一就是组合我们前面 阅读详情

 《智能计算系统》书2.11作业

题目:设计一个多层感知器实现4位加法器的功能,即两个4比特输入得到一个4比特输出和一个1比特进位。请自行构造训练集和测试集,完成训练及测试。

        我使用的是TensorFlow 2,需要关闭Eager Execution 实现TensorFlow 1.x 版本中的静态图形编程模型。

# 导入 TensorFlow 库
import tensorflow as tf

# 关闭 Eager Execution 模式
tf.compat.v1.disable_eager_execution()

# 定义输入和输出

inputs = tf.compat.v1.placeholder(tf.float32, shape=[None, 8])
outputs = tf.compat.v1.placeholder(tf.float32, shape=[None, 5])

# 创建一个全连接层和输出层,定义损失函数,使用梯度下降优化损失函数。

# 创建一个全连接层
hidden_layer = tf.keras.layers.Dense(8, activation='relu')(inputs)

# 创建一个输出层
#predictions = tf.keras.layers.Dense(4, activation='sigmoid')(hidden_layer)
predictions = tf.keras.layers.Dense(5, activation='sigmoid')(hidden_layer)
# 定义损失函数
loss = tf.losses.mean_squared_error(outputs, predictions)

# 使用梯度下降法优化损失函数
train_step = tf.compat.v1.train.GradientDescentOptimizer(0.5).minimize(loss)

#训练模型


# 训练模型
with tf.compat.v1.Session() as sess:
  sess.run(tf.compat.v1.global_variables_initializer())
  '''
  # 定义训练数据
  x = [[1, 0, 0, 0, 1, 0, 0, 0], [0, 1, 0, 0, 0, 1, 0, 0], [0, 0, 1, 0, 0, 0, 1, 0], [0, 0, 0, 1, 0, 0, 0, 1]]
  #y = [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]
  y = [[1, 0, 0, 0, 0], [1, 0, 0, 0, 0], [0, 1, 0, 0, 0], [0, 0, 1, 0, 1],]'''
  x = []
  y = []
  for i in range(16):
    for k in range(16):
      # 生成两个四位随机数
      #x1 = [random.randint(0, 1) for i in range(4)]
      x1 = bin(i)[2:]
      if len(x1) < 4:
          x1 = "0" * (4 - len(x1)) + x1
      x1 = [int(i) for i in list(x1)]
      
      #x2 = [random.randint(0, 1) for i in range(4)]
      x2 = bin(k)[2:]
      if len(x2) < 4:
          x2 = "0" * (4 - len(x2)) + x2
      x2 = [int(i) for i in list(x2)]
    
    
      # 将两个四位随机数合并成一个八位数
      xi = x1 + x2

     # 计算两个四位随机数的和
      yi = [sum(x) for x in zip(x1, x2)]

      #计算进位
      carry = 0
      for j in range(3, -1, -1):
       yi[j] += carry
       carry = 0
       if yi[j] >= 2:
          yi[j] -= 2
          carry = 1

      #添加进位到输出
      yi.append(carry)
    
      #添加到训练数据中
      x.append(xi)
      y.append(yi)

 # x1 = list(set(x1))
 # x2 = list(set(x2))
  
  for i in range(100):
    # 运行训练步骤
    sess.run(train_step, feed_dict={inputs: x, outputs: y})
    
  # 计算预测值
  #x_predict = [[1, 0, 0, 0, 1, 0, 0, 0], [0, 1, 0, 0, 0, 1, 0, 0], [0, 0, 1, 0, 0, 0, 1, 0], [0, 0, 0, 1, 0, 0, 0, 1]]
  print(x[:10])
  print(y[:10])
  predictions = sess.run(predictions, feed_dict={inputs: x[:10]})
  
  # 打印预测值
  print(predictions)

两个4位加法输入:

一个4位输出和一个进位,前4位代表输出,后1位进位:

将所有两个4位X作为模型输入 

测试结果:

智能计算系统(AICS)书面作业 智能计算系统(AICS)第1-8章书面作业下载 1.概述 2.神经网络基础 3.深度学习 4.编程框架使用 5.编程框架机理 6.深度学习处理器原理 7.深度学习处理器架构 8.智能编程语言 立即下载

相关推荐

基于 BP 神经网络的加法器设计与实现(原创17页) 人工智能技术大报告 MATLAB BP神经网络工具箱

如何使用Matlab中BP神经网络工具箱进行加法器的设计和代码的编写 压缩包内容: BP.m----MATLAB代码实现 ; 基于BP神经网络的加法器设计与实现.docx ; 基于BP神经网络的加法器设计与实现.pdf ; 所有数据.xlsx 文档目录: 一、设计目的 二、设计思路 三、参数设置 3.1 BP神经网络参数设置 3.2 Sim函数参数设置 四、设计结果对比研究 4.1 结果分析 4.2 不同参数对比分析 4.3 残差分析 五、结论 5.1结论 5.2 优化改进 参考文献 附录 附录一 实现代码 附录二 数据导出

【智能计算系统笔记】第二章笔记及课后习题

第二章笔记及课后习题笔记课后习题1. 多层感知机和感知机的区别是什么?为什么会有这样的区别?2. 假设有一个只有1个隐层的多层感知机,其输入、隐层、输出层的神经元个数分别为33、512、10,那么这个多层感知机中总共有多少个参数是可以被训练的?3. 反向传播中,神经元的梯度是如何计算的?权重是如何更新的?4. 请在同一个坐标系内画出五种不同的激活函数图像,并比较它们的取值范围。5. 请简述三种避免过拟合问题的方法。6. sigmoid激活函数的极限是0和1,请给出它的倒数形式并求出其在原点的导数值。7. 假

南风无休的博客 5738

LiteratureReading:[2022] Reformer: The Efficient Transformer

所属机构:加州大学伯克利分校(U.C. Berkeley)和谷歌研究(Google Research)。电子邮件:kitaev@cs.berkeley.edu所属机构:谷歌研究(Google Research)。电子邮件:lukaszkaiser@google.com所属机构:谷歌研究(Google Research)。电子邮件:levskaya@google.com大型Transformer模型在许多任务上通常能够达到最先进的结果,但训练这些模型可能非常昂贵,尤其是在处理长序列时。

有朋自远方来,不亦乐乎。 1223

FPGA——1位全加器和4位全加器的实现

1位加法器和4位加法器

chenyu128的博客 2万+

HTML5期末大作业:关于家乡介绍的HTML网页设计——郑州美景HTML+CSS(5页) 学生DW家乡介绍网页设计作业成品 web课程设计网页规划与设计

HTML5期末大作业:我的家乡——郑州美景HTML+CSS(5页) 学生DW网页设计作业成品 web课程设计网页规划与设计 计算机毕设网页设计源码 常见网页设计作业题材有 个人、 美食、 公司、 学校、 旅游、 电商、 宠物、 电器、 茶叶、 家居、 酒店、 舞蹈、 动漫、 明星、 服装、 体育、 化妆品、 物流、 环保、 书籍、 婚纱、 游戏、 节日、 戒烟、 电影、 摄影、 文化、 家乡、 鲜花、 礼品、 汽车、 其他 等网页设计题目, A+水平作业, 可满足大学生网页大作业网页设计需求, 喜

qq_365392777 1万+

汇编语言与接口技术(第4版)清华大学出版社 第2章 80*86微处理器 课后题答案

汇编语言与接口技术(第4版)清华大学出版社 第2章 80*86微处理器 课后题答案

m0_51658788的博客 3606

《大数据算法学习》(一)感知机

1.感知机的起源 感知机是由美国学者FrankRosenblatt在1957年提出来的。是作为神经网络(深度学习)的起源 的算法。学习感知机的构造也就是学习通向神经网络和深度学习的一种重要思想。 2.感知机的概念 感知机接收多个输入信号,输出一个信号。 这里所说的“信号”可以想象成电流或河流那 样具备“流动性”的东西。像电流流过导线, 向前方输送电子一样,感知机的信号也会形成 流,向前方输送...

zhiyeegao的博客 3654

Flash芯片的VCC上电到可操作时间过长

Flash的VCC上电到操作时间(tVSL)通常有最大值限制,如果超过这个时间,核心风险是状态机不同步和指令锁存错误。比如芯片内部振荡器可能已经尝试启动又休眠了,但主控却在这之后才发送指令,导致完全 misinterpreted。Flash芯片的(从电源上电到可以正常进行读写操作的时间)如果过长,会产生一系列负面影响简单来说,这个时间过长意味着电源上升速度太慢,违反了芯片的要求。

qq_61918649的博客 722

用神经网络实现一次加法运算

按照移动距离和假设,如果两张图片不重合点的数量分别是a和b,则网络收敛的迭代次数反比与a+b,也就是网络的迭代次数是a+b的函数n=f(a+b)。因此对二值化图片实现一次收敛,就相当于完成了一次加法运算。...

staple 1018

【转载】参数估计(Parameter Estimation):频率学派(最大似然估计MLE、最大后验估计MAP)与贝叶斯学派(贝叶斯估计BPE)

基础 频率学派与贝叶斯学派 http://www.douban.com/group/topic/16719644/ http://www.zhihu.com/question/20587681 最大似然估计(Maximum likelihood estimation,MLE) http://baike.baidu.com/view/1918804.htm http://baike.baidu.co

影 的专栏 3413

基于PUMA实现DOA估计-附Matlab代码

具体而言,PUMA算法将接收的信号分别在时域和频域上进行处理,并结合平稳合成(SS)和平稳子空间(SSP)方法,以提高估计精度。该算法将传统的基于协方差矩阵的最大似然(ML)和最小二乘(LS)方法扩展到了非均匀线性阵列(ULA)上,并通过对信号分离和DOA估计的优化,达到了高精度和高分辨率的效果。方位角(DOA)估计是信号处理中的一个重要问题,它的目的是确定从多个传感器接收到的信号的方向。本文将介绍如何使用基于PUMA的方位角估计算法来实现DOA估计,并附有相应的Matlab代码实现。

Byte_O_O的博客 496

使用循环神经网络(RNN)实现简易的二进制加法器

使用循环神经网络(RNN)实现简易的二进制加法器 利用python实现简易的循环神经网络,并在一个小demo(8比特二进制加法器)上进行了验证,激活函数为logistic函数,利用反向传播算法进行训练。具体的算法原理以及公式推导可参考相关的文献:《深度学习》、Recurrent nets and LSTM等。 相关的源码以及数据集可在链接中进行下载。 rnn.py # -*- coding: u...

TITLE 1960

PyTorch深度学习实战(3)——使用PyTorch构建神经网络

PyTorch 是一个用于构建深度神经网络的库,具有灵活性和可扩展性,可以轻松自定义模型。在本节中,我们将使用 PyTorch 库构建神经网络,利用张量对象操作和梯度值计算更新网络权重,并利用 Sequential 类简化网络构建过程,最后还介绍了如何使用 save、load 方法保存和加载模型,以节省模型训练时间。

盼小辉丶的博客 8万+

神经网络如何学习到加法等算法 - 神经编码器-解释器(Neural Programmer-Interpreters)

算法的本质 何为算法(algorithm)? 从狭义来讲,算法是计算机科学里面的概念,简单来说,所谓算法就是定义良好的计算过程,它取一个或者一组值作为输入,并产生出一个或一组值作为输出。亦即,算法就是一系列的计算步骤,用来将输入数据转换成输出结果[1]。 从广义来讲,算法是从初始态到可达目标态的序列过程。 如:命令机器人拿起一个瓶子,那么算法就是从机器手中没...

u010165147的博客 5213

罗克韦尔AB PLC_FactoryTalk无法登录的解决方法

罗克韦尔AB PLC_FactoryTalk无法登录的解决方法

Robot_PLC_HMI_Automation 3575

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

分类:神经网络

1

If you can dream it,you can do it. 465

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

基于RNN的加法运算器-从零实现循环神经网络

本文以一个简单的LSTM为例,训练一个可以做加法的长短时间记忆神经网络. 生成训练数据:generate_ground_truth.py. 数据格式为256范围内的正整数相加,c = a + b. 可以使用传统CNN来表示 网络设计 目标函数: 参考 1:一个使用attention模型,在karas中可视化训练的模型 https://medium.com/datalogue/attention...

浮生 1285

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

神经网络和深度学习(十二)

Python中Numpy广播机制 python可以进行不同维度的矩阵的四则运算,如下图: ①当一个(m,n)的矩阵和(1,n)的矩阵进行四则运算时,会将(1,n)的矩阵复制成一个(m,n)的矩阵,之后进行运算; ②当一个(m,n)的矩阵和(m,1)的矩阵进行四则运算时,会将(m,1)的矩阵复制成一个(m,n)的矩阵,之后进行运算; ③当一个(m,1)的矩阵与一个常数进行四则运算,会把常数扩展为一个(m,1)的矩阵,之后进行运算。 ...

MCotoneaster的博客 506

【学习记录】tensorflow搭建神经网络,并完成两数相加功能

问题描述: 随机生成数据集,进行加法运算。构建神经网络来实现加法器功能 实现代码: 生成100个随机数据 import numpy as np from tensorflow import keras import tensorflow as tf a=np.random.randint(1,100,100) b=np.random.randint(1,100,100) 将数据转化为100个样本,每个样本1个元素 x1=a.reshape(100,1) x2=b.reshape(100,

wongwongwong 1412

【智能计算系统笔记】第一章笔记及课后习题

第一章课后习题1. 简述强人工智能和弱人工智能的区别。2. 简述人工智能研究的三个学派。3. 一个有两个输入的单个神经元构成的感知机能完成什么任务?4. 深度学习的局限性有哪些?5. 什么是智能计算系统?6. 为什么需要智能计算系统?7. 第一代智能计算系统有什么特点?8. 第二代智能计算系统有什么特点?9. 第三代智能计算系统有什么特点?10. 假如请你设计一个智能计算系统,你打算如何设计?在你的设计里,用户将如何使用该智能计算系统? 1. 简述强人工智能和弱人工智能的区别。 强人工智能: 又称通用人工

南风无休的博客 3175

智能计算系统大作业总结

python 脚本的运行 模块和包 python的列表和元组 python循环语句 智能计算系统 Xshell免费版下载 Xshell常用命令大全

秀秀的奇妙旅行 1343

智能计算系统实验3-流水优化

北京交通大学🎉本节任务:编写程序实现FPGA流水加速循环下(loop)代码的加速,测量峰值性能(单位FLOPS)对比ARM处理器上程序的执行时间,理解硬件流水线对循环代码的加速原理和技巧理解流水的概念,学会判断II值对循环流水加速的影响作业修改FPGA流水加速程序,对比不同II值下FPGA处理器加速效果的变化。🎉实验要求:修改vecAdd代码,测试不同II值下性能的变化情况,画出性能随II变化的图表;修改device端程序,使得ll=1时性能能够达到最大,重新测试处理器最高性能;撰写并提交实验报告三个

m0_62165705的博客 979

加法神经网络概念是什么,加法神经网络概念解释

我想这可能是你想要的神经网络吧!什么是神经网络:人工神经网络(Artificial Neural Networks,简写为ANNs)也简称为神经网络(NNs)或称作连接模型(Connection Model),它是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。

Supermen333的博客 1347

BP神经网络加法运算

1.详细理论过程见下: - https://www.cnblogs.com/jzhlin/archive/2012/07/28/bp.html - https://www.cnblogs.com/jzhlin/archive/2012/07/30/bp_c.html - https://www.cnblogs.com/jzhlin/archive...

jungle8884的博客 1684

BP神经网络——训练一个加法运算

#include &lt;stdio.h&gt; #include &lt;math.h&gt; #include &lt;time.h&gt; #include &lt;stdlib.h&gt; #define num 3000 #define learn 0.001 double qiankui(double x0,double x1,double w[4],double v[2]){ r...

bw_yyziq的博客 1803

基于keras和tensorflow训练神经网络学习加法

# -*- coding: utf-8 -*- from keras.models import Sequential from keras.layers import Dense import numpy as np import random def generateData(): i = 1 X =[] Y = [] while i < 1000: t1 = random.randint(0,1000) t2 = rando

lujianfeiccie2009的专栏 414
上一篇: 上海大学机器学习0-Preparation
下一篇: local variable ‘classLabel‘ referenced before assignment Python机器学习_决策树DecisionTree中一个报错解决方法
wait021
博客等级 码龄5年 9粉丝 9原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值