Skip to content

YuanaHao/easy-tensorflow

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

超算第二次考核

在开始之前

计算图(Computational Graph)是机器学习和深度学习中非常重要的概念。它是一种数据结构,用于表示算法中的计算过程。计算图由节点(Node)和边(Edge)组成,节点代表计算操作,边代表数据流向。

计算图的每个节点都表示一个计算操作,如加法、乘法、激活函数等。节点之间通过边连接,边表示数据在节点之间流动的方向。计算图描述了整个算法的计算过程,从输入数据开始,经过一系列的计算操作,最终得到输出结果。

  • 我们现在提供一个框架,它能够实现最为基础同时也是最为关键的 ai 模型应该有的功能.现在提供的框架使用的基础数据类型是tensor, 在我们的模型中,tensor只是被设计成了二维的张量用于简化实现(如果你已经看懂了整个 project 并且完成了我们的任务,你可以尝试实现普遍 ai 模型中使用的四维张量)

  • 同时为了简化,我们的框架只能处理一个 input 和 一个 output (你也可以尝试优化)

  • 为了方便顺利完成任务,可能需要了解一些 ai 的基本知识

下面是整个框架的结构

5d859db45fba2d11dd1fa9b5c1d24363.png

git clone https://github.com/MITEGithub/easy-tensorflow.git

具体任务

  • 补全 project 中的 blanks ,让整个 project 能够正常的使用

  • 为框架设计三种新的 operator ,分别是 add, relu, conv2d,完善框架的功能

  • 尝试优化框架的速度

你该如何使用

  • 本次 project 一共分成4个文件夹,其中的test文件夹是你这次进行测试的主要文件夹.当完成了整个 project 之后,如果你想测试一下自己的 opt 与学长的实现是否相同,你可以使用在 project 主目录下的 control.py, 它会完成你的框架编译,并将其与我们已经生成的静态库文件进行结果的对比

  • 本次任务的主要修改点是在 src 文件夹下,其他文件夹中的内容可以不进行改动

  • 除了进行比对测试之外,你也可以使用makefile对项目进行正常的操作,比如编译,运行

你需要在这次学习中掌握的能力

  • 了解 ai 框架的基本思想,思考 model 引入计算图的好处,理解 forward() 和 backward() 的工作原理
  • 加深对C++的理解,感受泛型编程给代码编写带来的灵活性
  • 学会分析对于一个 project,哪里才是我优化的热点,能对热点进行适当的优化

About

超算第二次考核任务

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 84.4%
  • Python 9.9%
  • Makefile 5.4%
  • C 0.3%