团队项目选择

项目 内容
课程:北航-2020-春-软件工程 博客园班级博客
作业要求 团队项目选择
我们在这个课程的目标是 提升团队管理及合作能力,开发一项满意的工程项目
这个作业在哪个具体方面帮助我们实现目标 确定工程项目,进行初步设计

项目介绍

选题过程详见: 选题与大纲

项目名称:Visual Pytorch

项目介绍:实现一个可以通过拖拽组建进行编程的在线编程网站。核心功能是通过图形拖拽的编程方式,来生成神经网络的PyTorch项目代码,从而帮助深度学习初学者快速入门。希望能在上一版本的基础上实现更多的网络层、支持封装、代码的可视化、经典模型的嵌入、模型的部署等附加功能等。

NABCD分析

NABCD的含义请参考链接: 现代软件工程课件 需求分析 如何提出靠谱的项目建议 NABCD

1. Need:

如今Deep Learning大火,不论是计算机专科出生的学生,还是有一定数学工程基础的计算机爱好者,甚至是完全对编程不熟悉的人都希望能了解一些深度学习的基础知识、背后原理,并且亲手搭建一个神经网络,但刚入门这一领域中着实面临着一些困难:

  • 除了看教材、博客以外,没有好的入门方法
  • 教材中的概念比较抽象,并且有大量数学推导,不容易看懂
  • 大多例子都是以代码形式的,不直观,不熟悉python语言的人难以读懂
  • 搭建一个模型需要学习的代价大,难以边做边学

可见现有的学习途径对学习者并不是很友好。所以我们想搭建一个在线平台, 提供给用户可拖拽的编程方法,通过拖拽图形连接成网络(或者提供一些经典的网络结构),自动生成程序,并且教初学者本地部署模型,加载数据并进行训练。用这种方式可以帮助没有接触过deep learning的人更快、更直观地理解基本原理,并做一些前期的简单练习,能够快速入门。

2. Approach:

大致分为前端和后端两部分:

  • jsPlumb实现前端的可拖拽网页,提供Pytorch模型中所需要的各个组件,以及查看代码、上传数据、生成模型等功能。
  • Django框架实现后端服务器功能。
  • 基于Pytorch进行开发,在项目中嵌入tensorboard作为代码的可视化。

3. Benefit:

团队项目选择_第1张图片

详见:功能设计

4. Competitors:

目前来看,针对深度学习的图形化编程网站或软件还没有,但是存在3个类似的网页:

  1. tensorboard

    pytorch自带的tensorboard能实现模型可视化:在本地使用SummaryWriter可在本地生成pytorch网页,进行模型的初步可视化。

    然而目前做深度学习的很少有人使用这一方式,原因可能是:①不会用,②生成很麻烦,③可视化效果不好。这也是我们希望改正的地方,我们希望在我们项目中能嵌入tensorboard,让使用者非常方便地生成模型视图。

团队项目选择_第2张图片
  1. tensorflow playground

    tensorflow开发的一款线上学习,自动调节参数训练并可视化的网页。点击标题即可访问

    缺点是①模型简单,只能使用固定的神经元;②数据单一,普通的二维点分类

    团队项目选择_第3张图片

  2. NVIDIA AI PLAYGROUND

    tensorflow playgroud类似,网络端部署了模型并且可以实现在线图像生成功能。但是操作者不知道网络实现的具体细节,不利于学习Pytorch。

    团队项目选择_第4张图片

  3. 上一届Visual Pytorch

    【Gamma】发布说明是学长的最终版发布说明。从该博客中我们可以看到,他们已经实现了比较核心的功能。比如参数的调整,模块的删除,代码优化,引导内容。

    然而不足之处也有很多:模型不支持缩放,以及可视化结构的调整,模型的分享,比较关键的激活函数层、BN层、反卷积层,以及损失函数、优化器的选择,数据预处理部分,经典模型的集成,Tensorboard可视化的集成等。

    团队项目选择_第5张图片

    在Benefit一项,我们设计了我们的项目在他们的基础上改进的地方。具体设计的部分见功能规格设计。

上面的一些网页实现了一些功能,甚至还是很有趣的功能,但是没有提供给初学者一个方便学习的接口,学习网络结构的搭建,并亲手实现一个,这样才能得到一种成就感。

我们的项目核心竞争力在于免费和直观、便于入门,一个方便的工具自然容易让有需求的人接受,让之前没有使用过的用户开始使用我们的产品,即使没有学习deep learning计划的人,在初次尝试之后也可能有了学习的热情。

5. Delivery:

  • 在CSDN论坛、知乎等类似的技术论坛、菜鸟教程等类似的教程网站上推荐我们的网站。
  • 也可以在公众号上出推送,分享我们的网页、展示我们的功能。
  • 可以和高校的实验室老师取得联系,作为新加入实验室的同学入门的教程软件。

用户量评估

  • 在哪里发布软件?估计一周后用户量多少呢?

    线上网站。
    \(\alpha\)版本:预计发布以后一周内的模型的使用次数达到300,注册的用户量达到100。
    \(\beta\)版本:预计发布以后一周内的模型的使用次数达到600,注册的用户量达到200。
    \(\gamma\)版本:预计发布以后一周内的模型的使用次数达到1000,注册的用户量达到300。

电梯演说

各位领导/合作伙伴:

我们的visual pytorch网络的扩展和封装是为了解决 希望接触Deep Learning却没有基础的学习者 的痛苦,他们需要 更直观、更易懂的方式而不是单纯的教材和样例来入门,但是现有的方案并没有很好地解决这些需求,我们有独特的办法jsPlumb+Django来实现前端可拖拽以及前后端链接,它能给用户带来好处是可以更直观地理解DL中神经网络训练的过程,并复现一些经典的网络,亲手实现图像分类与分割、目标探测、图像生成,远远超过竞争对手tensorboard tensorflow playground NVIDIA AI PLAYGROUND,包括我们以前的版本。同时,我们会在CSDN、知乎等技术论坛,或是菜鸟教程等教程网站上宣传我们的网站,能很快地让大部分用户知道我们的产品,并进一步传播。 我们相信新的改进能给我们带来用户量及使用量的改善 。

你可能感兴趣的:(团队项目选择)