圖像識別、分布式、推薦系統(tǒng)_第1頁
圖像識別、分布式、推薦系統(tǒng)_第2頁
圖像識別、分布式、推薦系統(tǒng)_第3頁
圖像識別、分布式、推薦系統(tǒng)_第4頁
圖像識別、分布式、推薦系統(tǒng)_第5頁
已閱讀5頁,還剩71頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

Tensorflow與深度學習課程第七天1、CIFAR圖像分類2、分布式會話函數(shù)3、分布式TensorFlow4、推薦系統(tǒng)CIFAR圖片分類CIFAR圖片分類設計cifar_data.py 讀取圖片數(shù)據(jù)cifar_model.py

建立神經網絡模型cifar_train.py 訓練模型分布式會話APIMonitoredTrainingSession(master=‘’,is_chief=True,checkpoint_dir=None,

hooks=None,save_checkpoint_secs=600,save_summaries_steps=USE_DEFAULT,

save_summaries_secs=USE_DEFAULT,config=None)分布式會話函數(shù)master:指定運行會話協(xié)議IP和端口(用于分布式) “grpc://:2000”is_chief是否為主worker(用于分布式)

如果True,它將負責初始化和恢復基礎的TensorFlow會話。如果False,它將等待一位負責人初始化或恢復TensorFlow會話。checkpoint_dir:檢查點文件目錄,同時也是events目錄config:會話運行的配置項,tf.ConfigProto(log_device_placement=True)hooks:可選SessionRunHook對象列表should_stop():是否異常停止run():跟session一樣可以運行ophookstf.train.SessionRunHookHooktoextendcallstoMonitoredSession.run()1、begin():在會話之前,做初始化工作2、before_run(run_context)

在每次調用run()之前調用,以添加run()中的參數(shù)。ARGS:run_context:一個SessionRunContext對象,包含會話運行信息return:一個SessionRunArgs對象,例如:tf.train.SessionRunArgs(loss)3、after_run(run_context,run_values)

在每次調用run()后調用,一般用于運行之后的結果處理該run_values參數(shù)包含所請求的操作/張量的結果

before_run()。該run_context參數(shù)是相同的一個發(fā)送到before_run呼叫。

ARGS:run_context:一個SessionRunContext對象run_values一個SessionRunValues對象,

run_values.results注:再添加鉤子類的時候,繼承SessionRunHook常用鉤子tf.train.StopAtStepHook(last_step=5000)指定執(zhí)行的訓練輪數(shù)也就是max_step,超過了就會拋出異常

tf.train.NanTensorHook(loss)判斷指定Tensor是否為NaN,為NaN則結束注:在使用鉤子的時候需要定義一個全局步數(shù):global_step=tf.contrib.framework.get_or_create_global_step()分布式Tensorflow分布式Tensorflow是由高性能的gRPC框架作為底層技術來支持的。這是一個通信框架gRPC(googleremoteprocedurecall),是一個高性能、跨平臺的RPC框架。RPC協(xié)議,即遠程過程調用協(xié)議,是指通過網絡從遠程計算機程序上請求服務。分布式原理單機多卡+多機多卡(分布式)+多機多卡分布式的架構集群參數(shù)作業(yè)(parameter

job)任務1任務2工作作業(yè)(worker

job)任務1任務2注:參數(shù)作業(yè)所在的服務器稱為參數(shù)服務器(parameter

server),負責管理參數(shù)的存儲和更新;工作節(jié)點的服務器主要從事計算的任務,如運行操作,worker節(jié)點中需要一個主節(jié)點來進行會話初始化,創(chuàng)建文件等操作,其他節(jié)點等待進行計算分布式的模式分布式API1、創(chuàng)建一個tf.train.ClusterSpec,用于對集群中的所有任務進行描述,該描述內容對所有任務應該是相同的2、創(chuàng)建一個tf.train.Server,用于創(chuàng)建一個任務(ps,worker),并運行相應作業(yè)上的計算任務。cluster=tf.train.ClusterSpec({“worker”:[“:2222”,

/job:worker/task:0

“:2222”,

/job:worker/task:1

“:2222”],

/job:worker/task:2

"ps":[“:2222”,

/job:ps/task:0

“:2222”]

/job:ps/task:1})1、cluster=tf.train.ClusterSpec({"ps":ps_spec,"worker":worker_spec})1、創(chuàng)建集群2、創(chuàng)建服務tf.train.Server(server_or_cluster_def,job_name=None,task_index=None,protocol=None,config=None,start=True)創(chuàng)建服務(ps,worker)server_or_cluster_def:集群描述job_name:任務類型名稱task_index:任務數(shù)attribute:target返回tf.Session連接到此服務器的目標method:join()參數(shù)服務器端,直到服務器等待接受參數(shù)任務關閉3、工作節(jié)點指定設備運行tf.device(device_name_or_function)選擇指定設備或者設備函數(shù)if

device_name:指定設備例如:"/job:worker/task:0/cpu:0”if

function:tf.train.replica_device_setter(worker_device=worker_device,cluster=cluster)作用:通過此函數(shù)協(xié)調不同設備上的初始化操作worker_device:為指定設備,“/job:worker/task:0/cpu:0”

or"/job:worker/task:0/gpu:0"cluster:集群描述對象注:使用with

tf.device(),使不同工作節(jié)點工作在不同的設備上分布式案例1、創(chuàng)建集群對象2、創(chuàng)建服務3、服務端等待接受參數(shù)4、客戶端使用不同設備進行定義模型以進行計算5、使用高級會話類作業(yè):將圖片識別的程序改成分布式推薦系統(tǒng)1、推薦系統(tǒng)的背景2、推薦系統(tǒng)的意義3、推薦系統(tǒng)原理介紹4、推薦系統(tǒng)應用生活中無時無刻都在使用著推薦系統(tǒng)推薦系統(tǒng)的意義互聯(lián)網時代的信息量過載:視頻網站每天都會有上萬小時的視頻上傳購物網站每天上架百萬商品每天大概數(shù)以萬計的新聞報道解決信息過載搜索引擎時代分類導航

雅虎搜索

谷歌、百度個性化時代(提高用戶粘度、增加營收)系統(tǒng)自動推薦相關的東西

今日頭條、豆瓣、電商如何去給你的網站用戶推薦?推薦的依據(jù):用戶的歷史行為用戶的興趣點社交關系…推薦系統(tǒng)的結構數(shù)據(jù)處理與模型學習推薦模型推薦給用戶推薦系統(tǒng)的原理1、推薦系統(tǒng)的分類2、基于物品的協(xié)同過濾分析3、改進的協(xié)同過濾-隱語義模型4、推薦系統(tǒng)開源庫推薦系統(tǒng)的分類基于內容的推薦:1、推薦系統(tǒng)最初使用的最廣泛的推薦機制2、根據(jù)推薦物品或內容的元數(shù)據(jù)特征,發(fā)現(xiàn)物品或者內容的相關性,然后進行推薦相似的物品(tf-idf權重)3、物品通過內容比較關聯(lián):

電影題材:愛情片/動作片/科幻片/驚悚片

電影人物:范迪塞爾/保羅/吳京

電影時間:2017/7/7…4、優(yōu)缺點:物品相似度的分析僅僅依賴于物品本身的特征,這里沒有考慮人對物品的態(tài)度基于協(xié)同過濾的推薦(CFCollaborationFilter)基于用戶的協(xié)同過濾(UserCF)計算用戶的相似度,推薦相似用戶的喜好

基于物品的協(xié)同過濾(ItemCF重點)

計算物品的相似度,推薦相似度高的物品(不同于基于內容的推薦)

推薦系統(tǒng)的分類基于用戶的協(xié)同過濾0.60.450.80.3基于物品的協(xié)同過濾基于物品的協(xié)同過濾分析步驟:(1)計算物品之間的相似度(2)計算被推薦物品的興趣度(評分)(3)根據(jù)物品的相似度和用戶的歷史行為給用戶生成推薦列表用戶電影打分表user/moviem1m2m3m4m5A243B15C324D321.相似度計算公式

對于用戶A來說:對于用戶B來說對于用戶C來說對于用戶D來說合并四個矩陣,得出一個總矩陣:計算相似度為:

2.計算用戶對未看過電影興趣度

ItemCF與UserCF的綜合對比公司算法用途DiggUserCF個性化網絡文章推薦GroupLensUserCF個性化新聞推薦NetFlixItemCF電影推薦AmazonItemCF購物推薦豆瓣ItemCF電影、書籍推薦為什么新聞推薦使用UserCF算法,而購物網站使用ItemCF算法?

UserCF算法的推薦結果著重于反映那些與目標用戶興趣相似的小群體的熱點,而ItemCF算法的推薦結果著重于維護目標用戶的歷史興趣。換句話說,UserCF的推薦更加社會化,而ItemCF的推薦更加個性化。越是熱門的類,其類內物品的相似度越大。除此之外,不同領域的最熱門物品之間的相似度往往也是很高的ItemCF的缺點改進的協(xié)同過濾-隱語義模型目的:用戶評分矩陣中,有很多位置空著的,希望能夠正確填滿未打分的項目主要思想:找到隱藏因子,可以對user和item進行關聯(lián)隱因子矩陣分解

損失函數(shù)最小化求解

隱語義模型與ItemCF、UserCF對比理論基礎隱語義模型有較好的理論基礎,后兩種是一種基于統(tǒng)計的方法,沒有學習過程計算復雜度隱語義模型時間復雜度高于后兩者,主要是需要多次迭代在線實時推薦隱語義模型不能在線實時推薦,需要線下計算好推薦解釋ItemCF、UserCF有較好的推薦解釋,利用用戶的歷史行為來解釋推薦結果而隱語義模型它的隱類能夠代表一類興趣或者物品,卻很難用自然語言描述并生成解釋展現(xiàn)給用戶推薦系統(tǒng)開源庫LibFMLibFM是專門用于矩陣分解的利器Python-recsys一個非常輕量級的開源推薦系統(tǒng),Python-recsys主要實現(xiàn)了SVD、NeighborhoodSVD推薦算法(python2)CrabCrab是基于Python開發(fā)的開源推薦軟件,其中實現(xiàn)有item和user的協(xié)同過濾,只支持python2pyspark目前使用比較廣泛的機器學習庫,集成了推薦系統(tǒng)(python2)python-recsys安裝(python2)1、安裝依賴項: pipinstallcsc-pysparse pipinstallnetworkx pipinstalldivisi22、源碼安裝python-recsystarxvfzpython-recsys.tar.gzcdpython-recsys#為了不影響外面環(huán)境,在虛擬環(huán)境中運行pythonsetup.pyinstall推薦系統(tǒng)應用電影推薦數(shù)據(jù)集

MovieLens6M數(shù)據(jù)集6000名用戶對4000部電影的100萬條評分數(shù)據(jù)分為三部分:電影信息,用戶信息,打分信息每位用戶至少評判20場電影id,電影名稱,電影類型id,性別,年齡,職業(yè)用戶id,電影id,評分,時間戳python-recsys-----矩陣分解APIrecsys.algorithm.factorize.SVDSVD分析recsys.algorithm.factorize.SVD()矩陣分解法推薦method:load_data(filename=,sep=,format=):加載文件數(shù)據(jù)1、filename文件名2、sep分割的字符,3、format為字典,矩陣的value,row,col指定為文件中的第幾列,還有ids指定數(shù)據(jù)類型set_data(train):直接輸入獲取的數(shù)據(jù),SVD沒有加載文件時候compute(k=,min_values=10,post_normalize=None,savefile=):計算評分矩陣1、K為隱因子數(shù)量,默認1002、min_values為某物品評分用戶數(shù)量少于10個的直接刪除3、post_normalize:數(shù)據(jù)前進行歸一化4、savefile:文件的名字movielens,例如movielens.zipsimilarity(item1,item2):計算兩個物品相似度similar(item):獲得默認10個相近的物品recommend(userid,is_row=False):推薦給某用戶的指定數(shù)量的物品或者為某物品沒有打過分的用戶打分前10名,is_row為True則id為數(shù)據(jù)格式中的row的id,predict(itemid,userid):返回預測某用戶對物品的評分get_matrix().value(ITEMID,USERID)獲取評分矩陣中的值load_model(filename):加載本地模型,模型加載無需訓練save_model(filename):保存模型到本地,zip格式案例分析1、加載數(shù)據(jù)2、計算評分矩陣(compute)3、推薦指定用戶物品4、推薦評估(Data、RMSE)python-recsys-----數(shù)據(jù)APIrecsys.datamodel.data.D

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論