99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁精彩閱讀谷歌教你學(xué) AI-第三講簡單易懂的估算器
谷歌教你學(xué) AI-第三講簡單易懂的估算器
2018-01-03
收藏

谷歌教你學(xué) AI-第三講簡單易懂的估算器

Google Cloud發(fā)布了名為"AI Adventures"的系列視頻,用簡單易懂的語言讓初學(xué)者了解機(jī)器學(xué)習(xí)的方方面面。

觀看更多國外公開課,點(diǎn)擊"閱讀原文"

前兩期我們分別講到了機(jī)器學(xué)習(xí)的概念和具體步驟,今天讓我們來看到第三講,使用TensorFlow Estimator進(jìn)行機(jī)器學(xué)習(xí)。

CDA字幕組目前在對該系列視頻進(jìn)行漢化,之后將繼續(xù)連載,歡迎關(guān)注和支持~

主講人還是來自Google Cloud的開發(fā)人員,華裔小哥Yufeng Guo。讓我們在學(xué)習(xí)AI知識的同時(shí)來提高英語吧。

附有中文字幕的視頻如下:

AI Adventures--第三講簡單易懂的估算器

針對不方便打開視頻的小伙伴,CDA字幕組也貼心的整理了文字版本,如下:

機(jī)器學(xué)習(xí)棒極了,除了它迫使你用到高數(shù)的時(shí)候。進(jìn)行機(jī)器學(xué)習(xí)的工具得到了極大地發(fā)展,訓(xùn)練模型也從未如此簡單。

我們將利用對數(shù)據(jù)集的理解,而不是對純粹數(shù)學(xué)知識的理解,以此編程得出模型,最終得出相應(yīng)見解。在本期視頻,我們將用少部分代碼訓(xùn)練一個(gè)簡單的分類器。

TensorFlow Estimator

為了訓(xùn)練分類器,我們將使用TensorFlow。谷歌的開源機(jī)器學(xué)習(xí)庫。 TensorFlow有很龐大的API,但是我們要關(guān)注的是當(dāng)中的高級API,稱為Estimator(估算器)。

Estimator為我們把訓(xùn)練循環(huán)打包起來,這樣我們可以通過配置來訓(xùn)練模型,而不是手工進(jìn)行編程。從而去除了許多樣板文件,讓我們在更高的層面上思考抽象問題。意味著我們能夠參與到機(jī)器學(xué)習(xí)有意思的部分,而不用為各個(gè)細(xì)節(jié)而煩惱。

由于目前為止我們只涉及到線性模型,因此將主要圍繞該部分。之后會(huì)再看到這個(gè)例子,用來拓展其能力。

鳶尾花分類

這次我們將構(gòu)建一個(gè)模型,用來區(qū)分三種類似的花。我感覺這可能沒有上一期區(qū)分葡萄酒和啤酒那么有意思,但是這些花朵更難區(qū)分,從而構(gòu)成一項(xiàng)有趣的挑戰(zhàn)。

我們將對不同種類的鳶尾花進(jìn)行區(qū)分。我不確定我能區(qū)分鳶尾花和玫瑰,但是我們模型的目的是區(qū)分出山鳶尾(Iris Setosa)、雜色鳶尾(Iris Versicolour)和維吉尼亞鳶尾(Iris Virginica)。

山鳶尾(Iris Setosa)、雜色鳶尾(Iris Versicolour)和維吉尼亞鳶尾(Iris Virginica)

我們有鳶尾花卉數(shù)據(jù)集,包括花瓣和花萼長寬度數(shù)據(jù)。這四列將作為我們的“特征”。

加載數(shù)據(jù)

在引入TensorFlow和NumPy后,我們將加載數(shù)據(jù)集,使用TensorFlow的函數(shù)load_csv_with_header 。數(shù)據(jù)或者特征呈現(xiàn)為浮點(diǎn)數(shù)。同時(shí)每行數(shù)據(jù)或?qū)ο蟮臉?biāo)簽記錄為整型數(shù)(integer):0、1、2,對應(yīng)三種花。

我輸出了加載的結(jié)果,現(xiàn)在我們可以用命名的屬性訪問訓(xùn)練數(shù)據(jù)和相關(guān)標(biāo)簽或?qū)ο蟆?

建立模型

下面我們開始建模。首先我們需要設(shè)定特征列。特征列決定了進(jìn)入模型的數(shù)據(jù)類型。我們將用到四維特征列表示特征,稱為“flower_features”。

使用估算器(estimator)建模超級簡單。使用`tf.estimator.LinearClassifier`,我們可以通過傳遞之前創(chuàng)建的特征列讓模型實(shí)例化;該模型得出的不同輸出數(shù)字,比如這里是3;還有存儲(chǔ)模型訓(xùn)練過程和輸出文件的目錄。這使TensorFlow能夠在有需要的情況下,繼續(xù)進(jìn)行之前的訓(xùn)練。

輸入函數(shù)

分類對象能幫我們記錄狀態(tài),然后我們差不多可以進(jìn)入訓(xùn)練階段了。最后還有一個(gè)連接模型和訓(xùn)練數(shù)據(jù)的部分,即輸入函數(shù)。輸入函數(shù)的作用是創(chuàng)建TensorFlow操作,從而從模型中生成數(shù)據(jù)。

如今我們從原始數(shù)據(jù)到輸入函數(shù),通過數(shù)據(jù),通過特征列的映射,進(jìn)入到模型中。注意,我們對特征使用定義特征列的相同名稱。這樣數(shù)據(jù)才會(huì)是相關(guān)聯(lián)的。

運(yùn)行訓(xùn)練

現(xiàn)在可以開始訓(xùn)練了。為了訓(xùn)練模型,我們要運(yùn)行classifier.train()函數(shù),當(dāng)中輸入函數(shù)作為實(shí)參。就這樣我們把數(shù)據(jù)集和模型連接起來。

訓(xùn)練函數(shù)處理訓(xùn)練回路,對數(shù)據(jù)集進(jìn)行迭代,一步步提高性能。就這樣我們完成了一千個(gè)訓(xùn)練步驟! 我們的數(shù)據(jù)集不大,因此完成得很快。

評估

現(xiàn)在該對結(jié)果進(jìn)行評估了。我們可以使用之前相同的分類對象,因?yàn)檫@具有模型的訓(xùn)練狀態(tài)。為了確定我們模型的性能,我們可以運(yùn)行classifier.evaluate()函數(shù),傳遞到測試數(shù)據(jù)集,從返回的指標(biāo)中提取準(zhǔn)確率。

我們的準(zhǔn)確率為96.66%! 很不錯(cuò)嘛!!

Estimators: 簡單的工作流程

讓我們停下來,回顧一下使用Estimator我們目前實(shí)現(xiàn)了哪些成果。

Estimator API 為我們提供了很棒的工作流程,從獲取原始數(shù)據(jù),通過輸入函數(shù)傳遞,設(shè)立特色列和模型結(jié)構(gòu),運(yùn)行訓(xùn)練,進(jìn)行評估。容易理解的框架讓我們能夠思考數(shù)據(jù)和其性能,而不是依賴數(shù)學(xué),這太棒了!

下期預(yù)告

在本期視頻中,我們看到了TensorFlow高級API中的一個(gè)簡單版本,使用Estimator。在之后的視頻中,我們將探究如何對模型進(jìn)行擴(kuò)展,使用更多復(fù)雜的數(shù)據(jù),添加更多高級特征。


數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個(gè)參數(shù)驗(yàn)證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺(tái)檢測極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時(shí)表示是新驗(yàn)證碼的宕機(jī) product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計(jì)時(shí)完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }