CS61C Spring 2021——Project 2: CS61Classify要求及实现思路

由于课程政策,CS61C的所有代码均不会在网上公开,以下仅记录完成project时的具体思路。

  CS61Classify的最终目标是在Venus RISC-V模拟器上运行一个简单的ANN网络。此项目分为两个部分,part A和part B。在part A中,我们需要补充一些像矩阵乘法这样基本的函数;在part B中,我们需要将part A中实现的这些函数组合起来,加载一个已经预训练好了的网络,使用它识别MNIST数据集中的手写数字。

project要求

  1.project需要我们自己写测试案例来测试代码(可以参考project提供的tester)。
  2.在part A中,我们的单元测试应该100%覆盖常规代码;在part B中,应该100%覆盖read_matrix和write_matrix。

  Task 0:使用abs函数熟悉整个项目的流程。包括在python代码中添加新的测试案例;使用命令行工具生成.s测试案例;

  背景知识
  矩阵——使用以行为主的顺序将二维矩阵存储在一维数组中
CS61C Spring 2021——Project 2: CS61Classify要求及实现思路_第1张图片

Part A: Mathematical Functions


  实现一些基本的函数,根据给出的测试用例完善测试模块。

Part B: File Operations and Main

  little-endian:小端格式,低字节存放在低地址处。在文件中,文件的开始便在低地址处。
  下图显示的是数字0x0A0B0C0D是如何以小端格式的形式被存储在内存中的:
CS61C Spring 2021——Project 2: CS61Classify要求及实现思路_第2张图片

问题总结


  1.按部就班的完成即可,注意所谓的calling convention,将常用的变量存储在s寄存器(调用子函数前后值不会发生变化)中,临时变量存储在t寄存器中。



To be a sailor of the world bound for all ports.

你可能感兴趣的:(学习,python,开发语言)