# MindSpore 社区任务列表

- [基于MindSpore的深度学习算法开发](#基于MindSpore的深度学习算法开发)
- [深度学习模型计算图相同子结构的识别和展示](#深度学习模型计算图相同子结构的识别和展示)

## 基于MindSpore的深度学习算法开发

**项目描述**：MindSpore是华为自研的深度学习框架，采用基于源码转换的自动微分，支持自动并行、深度图优化。MindSpore原生支持昇腾芯片，针对昇腾芯片架构特点，采用Pipeline并行、整图下沉等功能，可以达到很高的执行性能。目前MindSpore还处于发展阶段，本项目向大家介绍MindSpore特性及API使用，希望大家基于MindSpore进行深度学习算法开发，完成某项指定挑战。

**项目难度**：中

**项目社区导师**：王俊

**导师联系方式**：<wangjun289@huawei.com>

**项目产出要求**：

完成下列三项任务之一

1. 提交基于MindSpore框架的深度学习模型以完成一项任务（会提供若干参考题目，但不限制选题内容）
2. 开发指定MindSpore算子
3. 解决指定MindSpore相关issue

最后制作ppt进行展示

**项目技术要求**：

- 基础Python使用
- 一定深度学习基础

**相关的开源软件仓库列表**：

- https://www.mindspore.cn
- http://gitee.com/mindspore/mindspore

## 深度学习模型计算图相同子结构的识别和展示

**项目描述**：MindSpore是华为自研的深度学习框架，其中的计算图模式是一种业界主流的用来进行数据传递与计算的形式。计算图主要包含节点和有向边，节点表示计算和控制操作，边表示数据的流向和控制等关系。计算图的高效合理展示，有助于用户更好的理解模型结构、发现和调试模型训练过程中出现的问题。然而，大型深度学习模型往往有着复杂的计算图结构，包含有成千上万个节点和更多的边。在这些点和边之中，包含有许多结构相同或高度相似的子结构，这些子结构不仅从图的拓扑结构上，甚至从深度学习语义上具有高度的相似性。快速识别大型计算图中上述的相同子结构，能够支持后续用收折、重叠等方式大幅减少页面中同时呈现的节点和边的数目，从而大幅改善计算图的展示效果。

**项目难度**：中

**项目社区导师**：高寒

**导师联系方式**：<gaohan19@huawei.com>

**项目产出要求**：

完成一个相同图结构识别工具，其中

- 输入：MindSpore的计算图文件（以`protobuf`格式序列化存储）
- 输出：相同的子结构（合理形式即可，如json等，内含字典，字典的键为编号，值为一个List，其中每个元素又为一个List，包含了相同子结构点和边的连接关系）

最后制作ppt进行展示

**项目技术要求**：

- 基础Python使用
- 一定的深度学习基础

**相关的开源软件仓库列表**：

- https://www.mindspore.cn
- http://gitee.com/mindspore/mindspore
- https://github.com/protocolbuffers/protobuf
- https://github.com/networkx/networkx
