99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

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

軟件工程師和數(shù)據(jù)科學家一起工作時,會擦出什么火花呢?

電子工程師 ? 來源:lq ? 2019-01-06 11:32 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

軟件工程師和數(shù)據(jù)科學家一起工作時,會擦出什么火花呢?

作為Java / Kotlin開發(fā)人員,一位名叫Ben Danial的小哥為我們講述了他與數(shù)據(jù)科學家合作的有趣經(jīng)歷。

在一年中,這位小哥從零開始學習機器學習,和數(shù)據(jù)科學家不斷交流合作,一起碼出了一個機器學習模型的原型,并成功把這個模型做上線。真是成就滿滿呢!

前情提要

大家好,我叫Ben Daniel,是一名安卓工程師。2017年末,我開始對機器學習領(lǐng)域產(chǎn)生興趣。機器學習這個領(lǐng)域充滿了有趣的挑戰(zhàn),因此也就需要大量的學習。今天,我就給大家講述我和我司數(shù)據(jù)科學家一起攻克機器學習難題的經(jīng)歷。

我還記得,我曾試圖解決我們的某個應用程序中出現(xiàn)的圖像分類問題。我們需要根據(jù)一組規(guī)則區(qū)分有效和無效圖像。于是我從深度學習領(lǐng)域中修改了dl4j這個例子,并試圖用它來處理分類任務。雖然結(jié)果不夠理想,但是我的心態(tài)還不錯。畢竟第一次嘗試嘛。

Dl4j例子鏈接:

https://github.com/deeplearning4j/dl4j-examples/blob/master/dl4j-examples/src/main/java/org/deeplearning4j/examples/convolution/AnimalsClassification.java

由于精度和最終模型的大小不符,我使用dl4j代碼的方法是不可取的。面向移動設(shè)備,我們需要一個文件大小緊湊的模型,很遺憾,這個功能無法實現(xiàn)。

數(shù)據(jù)科學家來啦

正巧,這個時候,我們聘請了一位數(shù)據(jù)科學家,他帶來了許多有趣的經(jīng)驗,也教會我們很多。我逐漸發(fā)現(xiàn),大多數(shù)機器學習問題都可以通過Python解決,而且Python社區(qū)中已經(jīng)有了對機器學習的巨大支持。雖然不太情愿,但我還是開始了Python的學習。

我從小型的機器學習課程開始學起。與此同時,我的其他團隊成員也很感興趣,并一起加入了學習的大軍。新入職的數(shù)據(jù)科學家向我們介紹了Jupyter notebook和云機器學習引擎。我們通過使用花卉數(shù)據(jù)集示例嘗試圖像分類,并很快沉迷其中。

在團隊中的每個人都接受了培訓和模型的基礎(chǔ)知識后,我們開始處理文章開始提到的遺留問題。作為一名團隊成員,我主要專注于兩項任務:圖像分類問題和圖像分割問題。之后,這兩個問題都被我們用卷積神經(jīng)網(wǎng)絡(luò)(CNN)解決了。

準備訓練數(shù)據(jù)真心難

這兩項任務(圖像分類問題和圖像分割問題)都需要大量的訓練數(shù)據(jù)。我有兩個消息——好消息是我們的確有很多數(shù)據(jù)。壞消息是它們要么是未分類要么是未注釋。我終于明白了機器學習專家們所說的,機器學習項目中大部分時間將用來準備訓練數(shù)據(jù)而不是訓練模型本身。

對于圖像分類分類問題,我們需要將數(shù)十萬個圖像排列成不同的類。這是一項繁瑣的工作。我不得不調(diào)用我的Java Swing技能,來構(gòu)建使這項任務更容易的GUI,但總的來說,標記數(shù)據(jù)這個任務真的很單調(diào),很無聊。

分割問題就要復雜一些了。我們很幸運地發(fā)現(xiàn)了一些擅長分割的模型,但不幸的是,這些模型太占內(nèi)存了。我們還希望該模型能夠在規(guī)格非常低的安卓設(shè)備上運行。這時,數(shù)據(jù)科學家建議我們使用龐大的模型來生成數(shù)據(jù),用以構(gòu)建我們自己的移動網(wǎng)絡(luò)。

訓練

我們最終切換到了AWS Deep Learning AMI。訓練圖像分割模型的過程完全由我們的數(shù)據(jù)科學家處理,我只需要站在他身邊,做筆記嘻嘻:)。

(其實我不在記筆記,哈哈哈哈哈哈哈哈)

訓練這個模型是一項計算密集型任務,需要足夠GPURAM。我們便采用了GPU和RAM,因此很快就完成了模型訓練。如果不是這樣的話,我們可能要花費數(shù)月來訓練這個模型。

我負責了圖像分類模型的訓練。不過,我并沒有在云上訓練,而是只在我的Macbook pro上訓練。這是因為,我只是訓練神經(jīng)網(wǎng)絡(luò)的最后一層,而不是我們?yōu)榉指钅P退龅娜W(wǎng)絡(luò)訓練。

順利完成!

兩種模型經(jīng)過嚴格的測試后,都成功進入了我們的產(chǎn)品線。在這一步,團隊成員的任務是構(gòu)建Java wrapper庫。這樣一來,我們就可以把模型繁復的細節(jié)隱藏起來。在使用時,我們只需輸入圖片,這個wrapper庫就會輸出一個概率 張量,也就是模型在單個圖像上預測的結(jié)果數(shù)組。我也參與了這一過程,因為我之前的一些寫碼經(jīng)驗有用武之地。

人生處處是挑戰(zhàn)

“挑戰(zhàn)讓生活變得有趣,克服挑戰(zhàn)則讓生活變得有意義”。

在這個項目中,我面臨的最大挑戰(zhàn)是嘗試使用Bazel從源代碼構(gòu)建用于32位系統(tǒng)的Tensorflow Java庫。整個過程實在是跌跌撞撞。

我也遇到過其他挑戰(zhàn),比如,將Python解決方案轉(zhuǎn)換為Java。由于Python已經(jīng)內(nèi)置了對數(shù)據(jù)科學任務的支持,因此Python中的代碼感覺更加簡潔。每次在嘗試逐字翻譯命令時,我都會抓耳撓腮。比如,縮放2D陣列并將其作為透明層添加到圖像中這一步就異常艱難。不過我們最終把這事兒搞定了!

現(xiàn)在我們上線的模型表現(xiàn)很好,但是當它們產(chǎn)生錯誤的結(jié)果時,那些錯誤的結(jié)果是荒謬無比的。

它讓我想起了我之前讀過的一句話:

“...如果沒有源源不斷的新數(shù)據(jù),模型質(zhì)量會迅速降低。這是著名的概念漂移(concept shift),這意味著,隨著時間的推移,靜態(tài)機器學習模型提供的預測變得不那么準確,并且不太有用。在某些情況下,甚至可能在幾天內(nèi)發(fā)生。 - David Talby

因此,我們必須不斷改進模型,并且永遠得不到一個一勞永逸的模型。其實還挺有趣的。

因為我本人主要關(guān)注移動開發(fā),所以我甚至不確定自己有資格被稱為機器學習的新手。然而,通過與數(shù)據(jù)科學家的合作,我在今年成功上線了一個機器學習模型。回想起來,相當激動呢!

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

原文標題:業(yè)界 | 當軟件工程師第一次與數(shù)據(jù)科學家一起工作……

文章出處:【微信號:BigDataDigest,微信公眾號:大數(shù)據(jù)文摘】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

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

    數(shù)字信號處理,科學家工程師指南(664頁)

    數(shù)字信號處理入門書籍,非常全面,清晰易懂 獲取完整文檔資料可下載附件哦?。。。?如果內(nèi)容有幫助可以關(guān)注、點贊、評論支持下哦~
    發(fā)表于 07-11 14:59

    CY7C65215使用IOS中的USB CDC UART類驅(qū)動程序是否可以與IOS一起工作

    我知道 CY7C65215 沒有適用于 IOS 的驅(qū)動程序。但是,使用 IOS 中的 USB CDC UART 類驅(qū)動程序是否可以與 IOS 一起工作? 我們正在考慮在我們的設(shè)備中安裝 CY7C65215 而不是 FTDI USB-COM,但我們擔心失去 IOS 支持。
    發(fā)表于 04-30 07:57

    工程師經(jīng)驗分享:社區(qū)之星 趙云 沉著穩(wěn)定才能做好技術(shù)

    控制算法理論和實踐有過推導和大量的研發(fā)調(diào)試經(jīng)驗。 ? 工作經(jīng)歷: 華為技術(shù)有限公司---芯片驗證工程師 上海問問網(wǎng)絡(luò)科技有限公司---電機驅(qū)動軟件工程師 ? ? ? 社區(qū)訪談: 社區(qū)小助手:可以分享
    的頭像 發(fā)表于 04-15 15:58 ?445次閱讀
    <b class='flag-5'>工程師</b>經(jīng)驗分享:社區(qū)之星  趙云 沉著穩(wěn)定才能做好技術(shù)

    如何成為名嵌入式軟件工程師?

    如何成為名嵌入式軟件工程師? 01明確崗位的角色與定位 嵌入式軟件工程師主要負責開發(fā)運行在特定硬件平臺上的軟件,這些軟件通常與硬件緊密集
    發(fā)表于 04-15 14:37

    招拿捏電子工程師#被AI拿捏了 #電子工程師 #電子電工

    電子工程師
    安泰小課堂
    發(fā)布于 :2025年03月25日 17:30:51

    嵌入式軟件工程師就業(yè)好不好?

    嵌入式軟件工程師就業(yè)好不好?會不會越老越吃香?今天一起來看看。 首先看下市場需求。 隨著物聯(lián)網(wǎng)、人工智能、5G等前沿技術(shù)的快速發(fā)展,嵌入式系統(tǒng)的應用領(lǐng)域不斷擴大,從智能家居、汽車電子到工業(yè)自動化
    發(fā)表于 02-20 10:19

    如何成為嵌入式開發(fā)工程師

    如何成為嵌入式開發(fā)工程師? 成為嵌入式開發(fā)工程師通常需要掌握系列技能和知識,并且在實踐中不斷積累經(jīng)驗。以下是些基本步驟和建議: 1. 基礎(chǔ)教育:- 獲取電子
    發(fā)表于 02-19 10:39

    ADC08D500要一起工作做Interleaving的話,需要在ADC CLK Input端各接個Delay Line IC對嗎?

    目前我們有個問題想請教,如果我們有兩顆ADC08D500要一起工作做Interleaving的話,需要在ADC CLK Input端各接個Delay Line IC對嗎?
    發(fā)表于 12-12 08:39

    使用MATLAB培養(yǎng)醫(yī)療人工智能領(lǐng)導者和增強工程課程

    全球各地的高校都在使用 MATLAB 和 Simulink 開展教學與科研,幫助未來的工程師科學家掌握未來世界工程項目與科學研究所要求的重要能力。讓我們
    的頭像 發(fā)表于 10-31 16:37 ?716次閱讀

    AI for Science:人工智能驅(qū)動科學創(chuàng)新》第4章-AI與生命科學讀后感

    了傳統(tǒng)學科界限,使得科學家們能夠從更加全面和深入的角度理解生命的奧秘。同時,AI技術(shù)的引入也催生了種全新的科學研究范式,即數(shù)據(jù)驅(qū)動的研究范式,這種范式強調(diào)從大量
    發(fā)表于 10-14 09:21

    FPGA算法工程師、邏輯工程師、原型驗證工程師有什么區(qū)別?

    邏輯工程師和 FPGA 原型驗證工程師工作重點和職責上存在定的區(qū)別: FPGA 算法工程師: 主要關(guān)注算法的設(shè)計和優(yōu)化,以在 FPGA
    發(fā)表于 09-23 18:26