團隊項目選擇

項目 內容
課程:北航-2020-春-軟件工程 博客園班級博客
作業要求 團隊項目選擇
我們在這個課程的目標是 提升團隊管理及合作能力,開發一項滿意的工程項目
這個作業在哪個具體方面幫助我們實現目標 確定工程項目,進行初步設計

項目介紹

選題過程詳見: 選題與大綱

項目名稱:Visual Pytorch

項目介紹:實現一個可以通過拖拽組建進行編程的在線編程網站。核心功能是通過圖形拖拽的編程方式,來生成神經網絡的PyTorch項目代碼,從而幫助深度學習初學者快速入門。希望能在上一版本的基礎上實現更多的網絡層、支持封裝、代碼的可視化、經典模型的嵌入、模型的部署等附加功能等。

NABCD分析

NABCD的含義請參考鏈接: 現代軟件工程課件 需求分析 如何提出靠譜的項目建議 NABCD

1. Need:

如今Deep Learning大火,不論是計算機專科出生的學生,還是有一定數學工程基礎的計算機愛好者,甚至是完全對編程不熟悉的人都希望能瞭解一些深度學習的基礎知識、背後原理,並且親手搭建一個神經網絡,但剛入門這一領域中着實面臨着一些困難:

  • 除了看教材、博客以外,沒有好的入門方法
  • 教材中的概念比較抽象,並且有大量數學推導,不容易看懂
  • 大多例子都是以代碼形式的,不直觀,不熟悉python語言的人難以讀懂
  • 搭建一個模型需要學習的代價大,難以邊做邊學

可見現有的學習途徑對學習者並不是很友好。所以我們想搭建一個在線平臺, 提供給用戶可拖拽的編程方法,通過拖拽圖形連接成網絡(或者提供一些經典的網絡結構),自動生成程序,並且教初學者本地部署模型,加載數據並進行訓練。用這種方式可以幫助沒有接觸過deep learning的人更快、更直觀地理解基本原理,並做一些前期的簡單練習,能夠快速入門。

2. Approach:

大致分爲前端和後端兩部分:

  • jsPlumb實現前端的可拖拽網頁,提供Pytorch模型中所需要的各個組件,以及查看代碼、上傳數據、生成模型等功能。
  • Django框架實現後端服務器功能。
  • 基於Pytorch進行開發,在項目中嵌入tensorboard作爲代碼的可視化。

3. Benefit:

詳見:功能設計

4. Competitors:

目前來看,針對深度學習的圖形化編程網站或軟件還沒有,但是存在3個類似的網頁:

  1. tensorboard

    pytorch自帶的tensorboard能實現模型可視化:在本地使用SummaryWriter可在本地生成pytorch網頁,進行模型的初步可視化。

    然而目前做深度學習的很少有人使用這一方式,原因可能是:①不會用,②生成很麻煩,③可視化效果不好。這也是我們希望改正的地方,我們希望在我們項目中能嵌入tensorboard,讓使用者非常方便地生成模型視圖。

<img src="https://img2020.cnblogs.com/blog/1972898/202003/1972898-20200329210844453-623482247.png" alt="ScreenClip" style="zoom:67%;" />

  1. tensorflow playground

    tensorflow開發的一款線上學習,自動調節參數訓練並可視化的網頁。點擊標題即可訪問

    缺點是①模型簡單,只能使用固定的神經元;②數據單一,普通的二維點分類

  2. NVIDIA AI PLAYGROUND

    tensorflow playgroud類似,網絡端部署了模型並且可以實現在線圖像生成功能。但是操作者不知道網絡實現的具體細節,不利於學習Pytorch。

  3. 上一屆Visual Pytorch

    【Gamma】發佈說明是學長的最終版發佈說明。從該博客中我們可以看到,他們已經實現了比較核心的功能。比如參數的調整,模塊的刪除,代碼優化,引導內容。

    然而不足之處也有很多:模型不支持縮放,以及可視化結構的調整,模型的分享,比較關鍵的激活函數層、BN層、反捲積層,以及損失函數、優化器的選擇,數據預處理部分,經典模型的集成,Tensorboard可視化的集成等。

    在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、知乎等技術論壇,或是菜鳥教程等教程網站上宣傳我們的網站,能很快地讓大部分用戶知道我們的產品,並進一步傳播。 我們相信新的改進能給我們帶來用戶量及使用量的改善 。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章