女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用git管理數(shù)據(jù)科學試驗的經(jīng)驗

zhKF_jqr_AI ? 來源:未知 ? 作者:李倩 ? 2018-11-24 09:21 ? 次閱讀

編者按:機器學習科學家分享了使用git管理數(shù)據(jù)科學試驗的經(jīng)驗。

引言

版本控制是管理數(shù)據(jù)科學試驗的關(guān)鍵工具。但是,魔鬼在細節(jié)之中。這篇文章將討論如何在數(shù)據(jù)科學項目中實現(xiàn)版本控制。

git的使用有好幾種范式,就數(shù)據(jù)科學試驗而言,我基本上根據(jù)的是特性分支這一范式。簡單來說,特性分支意味著有一個master分支(主分支)作為基礎(chǔ),新特性通過在主分支上分支的方式加入代碼基,做出實現(xiàn)特性需要的所有改動后,合并新分支至主分支。

策略

我為每個試驗或者想要嘗試的新建模思路創(chuàng)建一個新分支。這時你需要有意識地決策:代碼的修改只適用于這次試驗,還是希望在這次試驗和之前的試驗上都適用?換一種表述方式:你是打算替換,還是增益?這個問題的答案將決定你是否可以把新分支合并回主分支。

我建議額外花一點功夫,將關(guān)鍵組件提取出來,作為一個庫,在多次試驗中復(fù)用。這比有許多份相同(或者更糟,略有不同)的代碼要好很多,不用分別維護,也不易導(dǎo)致錯誤。俗話說得好,最好的代碼是沒有代碼。將關(guān)鍵組件提取至一個共享庫,你可以逐漸做出改進,并最終得到一個內(nèi)聚的代碼基,可以在一系列試驗復(fù)用。相反,如果你不斷引入不向后兼容的改動,你會發(fā)現(xiàn)自己頻繁地在分支間跳轉(zhuǎn),以便復(fù)制/粘貼有用的代碼片段,接著卻需要加以修改,因為組件沒有設(shè)計成能夠一起工作的。在較大的試驗中,這會變得很難操作。

特性分支這一方法的優(yōu)勢在于你可以將試驗分支合并回主分支,接著運行任何試驗。這么做的代價是,當你對核心庫進行改動時,你也許需要同時修改其他試驗的實現(xiàn)。所以,和所有事情一樣,這是一個需要做出權(quán)衡的決策。在我的經(jīng)驗中,這個方法能夠自然地演化,我發(fā)現(xiàn),每當我想要復(fù)制粘貼的時候,都會想一下能否提取公共代碼。

例子

我推薦如下的目錄結(jié)構(gòu):

|-- core/

|-- tests/

|-- test_pull_data.py

|-- test_prepare_data.py

|-- test_model.py

|-- test_deploy.py

|-- test_utils.py

|-- pull_data.py

|-- prepare_data.py

|-- model.py

|-- deploy.py

|-- utils.py

|-- experiment_1/

|-- data/

|-- training.csv

|-- validation.csv

|-- test.csv

|-- output/

|-- results.json

|-- models/

|-- model1

|-- model2

|-- job_config.py

|-- build_data.py

|-- train.py

|-- evaluate.py

|-- prod.py

|-- experiment_2/

|-- data/

|-- training.csv

|-- validation.csv

|-- test.csv

|-- output/

|-- results.json

|-- models/

|-- model1

|-- model2

|-- job_config.py

|-- build_data.py

|-- train.py

|-- evaluate.py

|-- prod.py

在這一情形中,主要邏輯位于core目錄下。試驗以目錄的形式組織,其中包含為試驗執(zhí)行核心邏輯的代碼,以及相應(yīng)的輸入、輸出文件。實現(xiàn)代碼應(yīng)該極為簡單,只做具體試驗特定的事情。例如,如果試驗是要比較A方法和B方法,那么它會引入A和B的配置,從核心實例化相關(guān)代碼,并調(diào)用每個示例的run方法。

注意這個結(jié)構(gòu)很自然地提供了實現(xiàn)單元/功能/集成測試的地方。此外,單是提取通用組件至可復(fù)用的庫這一行動就有助于使代碼更容易測試。由于代碼傾向于基于參數(shù),而非依賴硬編碼的試驗細節(jié),為測試創(chuàng)建玩具樣本就要容易很多。以后我會寫一篇文章,深入討論如何為數(shù)據(jù)科學項目寫測試。

竅門

下面是一些我覺得在實踐中比較有用的簡單竅門。

.gitignore

.gitignore告訴git忽略哪些文件。在開始一個新項目時,應(yīng)該優(yōu)先配置.gitignore。因為一旦你提交了蠢物,它就會永遠呆在代碼倉庫之中(除非你采取了一些特殊行動)。

最重要的是除外敏感信息,比如密碼和API密鑰。如果你早早地提交了包含敏感信息的文件,那么它很快就會變成一場噩夢。從當前快照刪除文件無濟于事——你需要從所有之前的提交中清除敏感信息。對自己好一點,避免去學如何做到這一點。

下一步是忽略非常大的數(shù)據(jù)文件和你不需要追蹤的不重要文件(例如,notebook檢查點,IDE的配置文件,pycache,.pyc,等等)。在上面的例子中,所有輸入輸出文件也應(yīng)該忽略,因為它們完全可以由代碼本身確定,如果需要,可以重新生成。

頻繁提交

如果你完成了合理數(shù)量的工作,提交一次。不要吝嗇,頻繁提交也許能幫助你避免堵塞。

明晰的提交信息

如果你提交得足夠頻繁,那么你的工作大概也會相當集中,這樣提交信息可以寫得更清晰。回溯不想要的改動時,再沒有比根據(jù)恰當注解的提交歷史快速找到目標更令人滿足的了。如果你找到的描述是這樣的:“實現(xiàn)了3個新特性,增加了dropout,創(chuàng)建了交叉驗證組件,同時重構(gòu)了訓(xùn)練邏輯”,那么你提交得不夠頻繁。

反饋

我在嘗試不同策略的過程中逐漸積累了這些想法。如果你有不同的做法,歡迎留言分享!

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4886

    瀏覽量

    70241
  • 數(shù)據(jù)科學
    +關(guān)注

    關(guān)注

    0

    文章

    168

    瀏覽量

    10398

原文標題:如何使用git管理數(shù)據(jù)科學項目

文章出處:【微信號:jqr_AI,微信公眾號:論智】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦
    熱點推薦

    飛凌嵌入式ElfBoard ELF 1板卡-git管理源碼之git安裝和使用

    git是什么?git是一個開源的分布式版本控制系統(tǒng),可以有效、高速地處理從很小到非常大的項目版本管理,也是Linus Torvalds為了幫助管理Linux內(nèi)核開發(fā)而開發(fā)的一個開放源碼
    發(fā)表于 01-14 09:08

    基于單片機控制的滾動試驗臺電氣同步調(diào)速系統(tǒng)

    本帖最后由 luna 于 2011-3-8 12:29 編輯 機車車輛滾動試驗臺是對現(xiàn)代機車車輛進行科學試驗的大型試驗裝置,它可以模擬再現(xiàn)機車車輛在鐵路線上運行的各種工況環(huán)境,測試
    發(fā)表于 03-08 12:05

    使用Git版本控制軟件管理源代碼

    Git 是 Linux Torvalds 為了幫助管理 Linux? 內(nèi)核開發(fā)而開發(fā)的一個開放源碼的版本控制軟件。我們可以自己下載這個軟件用于對內(nèi)核的 hack 分析,或者用來管理自己的軟件開發(fā)項目
    發(fā)表于 05-16 11:30 ?2235次閱讀

    Pro_Git中文版

    代碼版本管理軟件GIT的詳細使用教程,GIT上手比較慢,不看資料很難上手
    發(fā)表于 07-20 17:21 ?0次下載

    Airbnb機器學習和數(shù)據(jù)科學團隊經(jīng)驗分享

    Airbnb資深機器學習科學家Shijing Yao、前Airbnb數(shù)據(jù)科學負責人Qiang Zhu、Airbnb機器學習工程師Phillippe Siclait分享了在Airbnb產(chǎn)品上大規(guī)模應(yīng)用深度學習技術(shù)的
    的頭像 發(fā)表于 07-07 09:24 ?4081次閱讀

    汽車試驗數(shù)據(jù)管理系統(tǒng)(TDM系統(tǒng))

    ,不但增加研發(fā)成本,而且還由于數(shù)據(jù)丟失影響開發(fā)進度。因此,如何有效的管理試驗數(shù)據(jù)就成為企業(yè)重要的工作。 由于各企業(yè)的研發(fā)流程不同,試驗
    發(fā)表于 04-10 09:13 ?3723次閱讀

    Git命令的講解和Git數(shù)據(jù)通信原理的資料概述

    Git是一款開源的分布式版本控制系統(tǒng)(VCS),常用的VCS工具還包括SVN、Mercurial等,他們的使命是對資源變化的進行版本管理控制,對資源容災(zāi)備份,支持多域協(xié)同開發(fā)。這里的資源不僅僅是系統(tǒng)
    發(fā)表于 06-11 08:00 ?7次下載
    <b class='flag-5'>Git</b>命令的講解和<b class='flag-5'>Git</b><b class='flag-5'>數(shù)據(jù)</b>通信原理的資料概述

    Git進行Vivado工程管理的教程分享

    作者:貓叔 git有多好用我就不用多說了,可謂是程序員必備技能之一。對于一般的軟件代碼來說,只需把源文件進行git管理即可。但對于FPGA工程師來說,使用git多多少少有些蛋疼,主要有
    的頭像 發(fā)表于 11-16 14:59 ?3312次閱讀
    <b class='flag-5'>Git</b>進行Vivado工程<b class='flag-5'>管理</b>的教程分享

    數(shù)據(jù)科學導(dǎo)論的課程設(shè)計及改革綜述

    和中國人民大學等高校開設(shè)的具有一定代表性的數(shù)據(jù)科學導(dǎo)論課程的基礎(chǔ)上,作者結(jié)合自己開設(shè)的數(shù)據(jù)科學導(dǎo)論課程以及國家冋名精品在線開放課程建設(shè)的經(jīng)驗
    發(fā)表于 05-18 11:32 ?2次下載

    Git權(quán)威指南

    Git管理資料,方便大家學習git知識
    發(fā)表于 06-29 14:15 ?0次下載

    利用Learn Git Branching輕松學習Git

    Git作為世界上最流行的版本控制系統(tǒng),可以說是每一位與程序打交道的朋友最值得學習的軟件之一。除了管理自己的項目,如果你對參與開源項目感興趣,那么Git更是聯(lián)結(jié)Github、Gitlab等知名代碼項目
    的頭像 發(fā)表于 09-15 14:53 ?1877次閱讀

    Git的分支管理

    在項目的開發(fā)過程中,很多時候都會使用Git托管工具進行項目文件或者代碼的管理,方便團隊成員之間的協(xié)作開發(fā)。使用Git進行項目管理目前也是越來越受到歡迎,除了
    的頭像 發(fā)表于 02-20 14:49 ?1262次閱讀
    <b class='flag-5'>Git</b>的分支<b class='flag-5'>管理</b>

    Git是什么 Git介紹

    git 是什么? Git 誕生于 2005 年,是一款免費、開源、分布式版本控制系統(tǒng)。 直接記錄快照,而非差異比較 Git 和其它版本控制系統(tǒng)的主要差別在于 Git 對待
    的頭像 發(fā)表于 07-22 10:50 ?2139次閱讀
    <b class='flag-5'>Git</b>是什么 <b class='flag-5'>Git</b>介紹

    藍牙 | 軟件:Git管理高通的ChipCode項目

    處理卡住了,我們只能從git下手。Git有優(yōu)秀的項目管理,代碼管理的能力,所以學一學git管理
    的頭像 發(fā)表于 01-26 08:29 ?588次閱讀
    藍牙 | 軟件:<b class='flag-5'>Git</b><b class='flag-5'>管理</b>高通的ChipCode項目

    試驗數(shù)據(jù)采集管理系統(tǒng)的核心就是對試驗規(guī)程的嚴格遵循

    ? ? ? 在公路工程項目中,試驗過程管理科學性與合理性直接影響工程質(zhì)量與進度。傳統(tǒng)的試驗數(shù)據(jù)管理方法往往依賴人工記錄與手動分析,容易出現(xiàn)
    的頭像 發(fā)表于 02-14 09:22 ?227次閱讀