基於pytorch圖像識別的enas 啥也不會還作機器學習前端
思考總結
設想和目標
- 咱們的軟件要解決什麼問題?是否認義得很清楚?是否對典型用戶和典型場景有清晰的描述?
- 軟件功能:藉助微信平臺搭建一個圖像識別的小程序,能夠進行實時識別,返回結果,而且收集用戶評價。
- 前端是用小程序web開發者工具。
- 後臺要求:基於pytorch框架搭建CNN模型,其中CNN模型要求是由Google提出的enas(高效神經架構搜索)獲得的。
- 典型用戶:微信用戶
- 典型場景:微信小程序
- 咱們達到目標了麼(原計劃的功能作到了幾個? 按照原計劃交付時間交付了麼? 原計劃達到的用戶數量達到了麼?)?
- 原計劃功能:實如今微信小程序上對手寫體阿拉伯數字的識別。
- 實現狀況:所有完成。
- 交付和用戶:軟件功能基本實現,但數據庫還未完成,目前CNN模型還很是基礎,會根據第二次迭代中經過enas獲得的模型結果進行更換,暫時沒法投入使用。
- 用戶量, 用戶對重要功能的接受程度和咱們事先的預想一致麼? 咱們離目標更近了麼?
- 有什麼經驗教訓? 若是歷史重來一遍, 咱們會作什麼改進?
- 項目的重難點是enas,先對論文作復現弄懂模型參數共享,再根據這個思想去搜索出咱們須要的CNN模型(論文中作的是RNN)。這個項目跟作普通的web,app項目差異較大,沒有那麼多頁面設計和功能需求,可是對知識深度的要求比較高,實現難度大,重點是它跟咱們平時學的知識密切程度低。若是重來一遍,應該會提議下降這個項目在圖像識別方面的難度,而後增多一些功能,多一點用戶交互之類的。(固然這些只是我的見解...)
計劃
- 是否有充足的時間來作計劃?
- 團隊在計劃階段是如何解決同事們對於計劃的不一樣意見的?
- 計劃階段主要是剛開始咱們跟指導老師討論肯定了主要方向,而後後面基本上碰到問題一塊兒討論解決,不多有不一樣意見。
- 你原計劃的工做是否最後都作完了? 若是有沒作完的,爲何?
- 團隊總體項目推動很順利,alpha版本的計劃都作完了
- 有沒有發現你作了一些過後看來不必或沒多大價值的事?
- 是否每一項任務都有清楚定義和衡量的交付件?
- 是的,尤爲在模塊對接時,你們會提早說明本身須要接收或者傳出什麼樣的接口或者數據。
- 是否項目的整個過程都按照計劃進行,項目出了什麼意外?有什麼風險是當時沒有估計到的,爲何沒有估計到?
- 徹底按照計劃進行,可是最重的模塊在了第二次迭代,如今你們內心壓力有點大。
- 在計劃中有沒有留下緩衝區,緩衝區有做用麼?
- 未來的計劃會作什麼修改?(例如:緩衝區的定義,加班)
- 咱們學到了什麼? 若是歷史重來一遍, 咱們會作什麼改進?
- 感受學到了挺多的...深度學習方面補了不少基礎知識(eg:pytorch基礎,線性、Logistic迴歸模型,優化算法(SGD,Adam),神經網絡(CNN,RNN)搭建,訓練...),基礎的圖像處理,微信小程序也瞭解了基礎的頁面製做和API接口使用。剛開始學習具備盲目性,網上資料、視頻太多了,前兩週學得不紮實,重來一次的話,應該會先去找一本適合本身的書作指導,把書上的例子都敲敲代碼體會一下,而後結合幾個比較官方的視頻學習。
資源
- 咱們有足夠的資源來完成各項任務麼?
- 各項任務所需的時間和其餘資源是如何估計的,精度如何?
- 時間通常按實際狀況決定(有些周其餘學習任務輕,可能效率高,有些周比較忙,效率確定有影響)
- 精度還不錯吧...你們作事都不會拖拉,能力也挺強的
- 測試的時間,人力和軟件/硬件資源是否足夠? 對於那些不須要編程的資源 (美工設計/文案)是否低估難度?
- 測試沒有詳細的安排,通常是本身作完本身的會進行測試,而後最後拼接完,再一塊兒進行測試
- 沒有合適的數據集,目前用的都是網上公開的
- 咱們本身買的服務器比較簡陋,應該不會用於訓練模型
- 平時訓練模型你們都用的是本身的筆記本(性能不夠好,大部分無法安GPU,對於複雜的網絡結構計算慢,爆內存)
- 你有沒有感到你作的事情可讓別人來作(更有效率)?
- 有什麼經驗教訓? 若是歷史重來一遍, 咱們會作什麼改進?
- 資源上有些尷尬,下階段可能會向老師尋求幫助,或者藉助於某些能夠進行GPU計算的平臺進行模型搜索和訓練
變動管理
- 每一個相關的員工都及時知道了變動的消息?
- 咱們採用了什麼辦法決定「推遲」和「必須實現」的功能?
- 一開始就決定了主體功能,主體功能必須實現,目前沒有推遲什麼功能,都按照計劃實行
- 項目的出口條件(Exit Criteria – 什麼叫「作好了」)有清晰的定義麼?
- 能識別用戶圖片,而且識別準確率較高,用戶可接受範圍
- 實現方法是基於項目需求
- (我的理解)
- 對於可能的變動是否能制定應急計劃?
- 沒有提早制定應急計劃,但有變動時會及時作出反應和調整
- 員工是否可以有效地處理意料以外的工做請求?
- 你們的及時調整都很好,對於意外狀況能較快找出緣由,找到解決方案
- 咱們學到了什麼? 若是歷史重來一遍, 咱們會作什麼改進?
- 項目的團體協做比較重要,作模塊以前要溝通好,中途發現困難相互幫助,測試時發現問題應該與組員商議後再作出調整
設計/實現
- 設計工做在何時,由誰來完成的?是合適的時間,合適的人麼?
- 整個模式的設計是在項目初期,全組人員和老師溝通商定的
- 設計工做有沒有碰到模棱兩可的狀況,團隊是如何解決的?
- 團隊是否運用單元測試(unit test),測試驅動的開發(TDD)、UML, 或者其餘工具來幫助設計和實現?這些工具備效麼?
- 比較項目開始的 UML 文檔和如今的狀態有什麼區別?這些區別如何產生的?是否要更新 UML 文檔?
- 什麼功能產生的Bug最多,爲何?在發佈以後發現了什麼重要的bug? 爲何咱們在設計/開發的時候沒有想到這些狀況?
- 目前好像沒bug,瑕疵的話會有一點,實際圖片上傳後,會在後臺壓縮成28*28的大小,這樣圖片精度會有損失,這個受限於數據集
- 代碼複審(Code Review)是如何進行的,是否嚴格執行了代碼規範?
- 代碼比較規範,可是跟老師文檔中提出的要求會有些出入
測試/發佈
- 團隊是否有一個測試計劃?爲何沒有?
- 沒有詳細的測試計劃
- 緣由:項目的功能模塊較少,你們在作本身模塊時,都會邊作邊測試,最後模塊對接好,會一塊兒進行測試
- 是否進行了正式的驗收測試?
- 團隊是否有測試工具來幫助測試?
- 暫未考慮,通常是先看該模型在數據集中的準確率,在比較滿意狀況下,你們再進行手寫數字上傳進行測試
- 團隊是如何測量並跟蹤軟件的效能的?從軟件實際運行的結果來看,這些測試工做有用麼?應該有哪些改進?
- 在發佈的過程當中發現了哪些意外問題?
- 咱們學到了什麼? 若是歷史重來一遍, 咱們會作什麼改進?
- 項目作的過程當中就會有不少次測試,若是第二次迭代開發有剩餘時間,你們可能會制定比較詳細的測試方案
團隊的角色,管理,合做
- 團隊的每一個角色是如何肯定的,是否是人盡其才?
- 你們都挺努力地在學,項目功能模塊少,難度大,分工可能有點尬,有沒有人盡其才不清楚...
- 團隊成員之間有互相幫助麼?
- 當出現項目管理、合做方面的問題時,團隊成員如何解決問題?
- 不多出現這些問題,你們都頗有合做精神,作事效率也不錯,遇到困難都會相互幫忙解決
總結
1.你以爲團隊目前的狀態屬於 CMM/CMMI 中的哪一個檔次?web
2. 你以爲團隊目前處於 萌芽/磨合/規範/創造 階段的哪個階段?算法
3.你以爲團隊在這個里程碑相比前一個里程碑有什麼改進? 數據庫
4.你以爲目前最須要改進的一個方面是什麼?編程
5.對照敏捷開發的原則, 你以爲大家小組作得最好的是哪幾個原則? 請列出具體的事例。 小程序
- 每週都會進行例會,進行總結和發佈新任務
- 消息傳遞及時,遇到問題或者須要改動的部分,都會面對面溝通或者QQ交流