智能计算系统实验2

实验2.1:基于三层神经网络实现手写数字识别

实验目的

  1. 实现三层神经网络模型进行手写数字分类,建立一个简单而完整的神经网络工程。通过本实验理解神经网络中基本模块的作用和模块间的关系,为后续建立更复杂的神经网络实验(如风格迁移)奠定基础。
  2. 利用高级编程语言Python实现神经网络基本单元的前向传播(正向传播)和反向传播计算,加深对神经网络中基本单元的理解,包括全连接层、激活函数、损失函数等基本单元。
  3. 利用高级编程语言Python实现神经网络构建,以及训练神经网络所使用的梯度下降算法,加深对神经网络训练过程的理解。

实验过程

数据集读取和预处理

在这里插入图片描述

train_labels = self.load_mnist(os.path.join(MNIST_DIR, TRAIN_LABEL), False)
test_images = self.load_mnist(os.path.join(MNIST_DIR, TEST_DATA), True)
test_labels = self.load_mnist(os.path.join(MNIST_DIR, TEST_LABEL), False)
全连接层

在这里插入图片描述

self.output = np.matmul(self.input, self.weight) + self.bias
self.d_weight = np.dot(self.input.T, top_diff)
self.d_bias = np.sum(top_diff, axis=0)
bottom_diff = np.dot(top_diff, self.weight.T)
self.weight = self.weight - lr * self.d_weight
self.bias = self.bias - lr * self.d_bias
relu层

在这里插入图片描述

output = np.maximum(0, self.input)
bottom_diff = top_diff
bottom_diff[self.input < 0] = 0
softmax层

在这里插入图片描述

self.prob = input_exp / np.sum(input_exp, axis=1, keepdims=True)
bottom_diff = (self.prob - self.label_onehot) / self.batch_size
组网

在这里插入图片描述

self.fc2 = FullConnectedLayer(self.hidden1, self.hidden2)
self.relu2 = ReLULayer()
前向传播和反向传播

在这里插入图片描述

h2 = self.fc2.forward(h1)
h2 = self.relu2.forward(h2)
h3 = self.fc3.forward(h2)
dh3 = self.fc3.backward(dloss)
dh2 = self.relu2.backward(dh3)
dh2 = self.fc2.backward(dh2)

推导过程

在这里插入图片描述

实验打分标准

在这里插入图片描述

实验2.2:基于DLP平台实现手写数字分类

实验目的

熟悉深度学习处理器 DLP 平台的使用,能使用已封装好的 Python 接口的机器学习编程库 pycnml 将第2.1节的神经网络推断部分移植到 DLP 平台,实现手写数字分类。具体包括:

  1. 利用提供 pycnml 库中的 Python 接口搭建手写数字分类的三层神经网络。
  2. 熟悉在 DLP 上运行神经网络的流程,为在后续章节详细学习 DLP 高性能库以及智
    能编程语言打下基础。
  3. 与第2.1节的实验进行比较,了解 DLP 相对于 CPU 的优势和劣势

实验过程

基本就是第一个实验的简化版,将layer的创建换成了pycml的接口,接口调用参考实验手册即可,注意要加载2.1实验保存的模型参数。

实验打分标准

在这里插入图片描述
————————————————————————————————
2022/4/12
感觉看这个实验的人挺多的,后续的实验笔记我也不想补了,我把所有实验代码放下面,需要的自取就行。
链接:https://pan.baidu.com/s/1NryUcNti7oETCXzcfgTCsQ
提取码:cxsv

  • 30
    点赞
  • 119
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值