青島網(wǎng)站開發(fā)公司一份完整的電商運(yùn)營方案
Tensorflow 2.12 電影推薦項(xiàng)目搭建
- 學(xué)習(xí)筆記
- 工具、環(huán)境
- 創(chuàng)建項(xiàng)目
- 項(xiàng)目配置
- 安裝相關(guān)python包
- 召回模型實(shí)現(xiàn)
- 排序模型實(shí)現(xiàn)
- 實(shí)現(xiàn)電影推薦
- 導(dǎo)入模塊
- 設(shè)置要推薦的用戶
- 召回推薦
- 排序推薦
- 推薦結(jié)果
- 結(jié)尾
學(xué)習(xí)筆記
Tensorflow 2.12 電影推薦項(xiàng)目搭建記錄~
Tensorflow是谷歌開源的機(jī)器學(xué)習(xí)框架,可以幫助我們輕松地構(gòu)建和部署機(jī)器學(xué)習(xí)模型。這里記錄學(xué)習(xí)使用tensorflow來搭建一個(gè)電影項(xiàng)目demo,包含召回模型搭建、排序模型搭建,以及整合兩個(gè)模型進(jìn)行完整的推薦。
相關(guān)文章:
電影推薦-召回模型
電影推薦-排序模型
工具、環(huán)境
開發(fā)工具:PyCharm 2023.1.1 (Community Edition)
使用環(huán)境:Python 3.10.6
使用框架:tensorflow 2.12.0、tensorflow-datasets 4.9.2、tensorflow-recommenders 0.7.3、numpy 1.23.5、pandas 2.0.3、tensorboard 2.12.3
創(chuàng)建項(xiàng)目
使用PyCharm創(chuàng)建一個(gè)新項(xiàng)目:MovieRecommenders,方便后續(xù)在項(xiàng)目中實(shí)現(xiàn)推薦模型、排序模型相關(guān)的代碼:
點(diǎn)擊Create按鈕,完成創(chuàng)建,新建項(xiàng)目截圖如下:
項(xiàng)目配置
打開控制臺,配置pip國內(nèi)源,下包的速度會快一點(diǎn),這里配置阿里源:
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple
pip config set install.trusted-host mirrors.aliyun.com
配置截圖如下:
安裝相關(guān)python包
使用pip安裝tensorflow、tensorflow-recommenders、tensorflow-datasets三個(gè)包,注意對應(yīng)版本,tensorflow的依賴包很多,整個(gè)過程估計(jì)5~10分鐘:
pip install tensorflow==2.12.0
pip install tensorflow-recommenders==0.7.3
pip install tensorflow-datasets==4.9.2
安裝截圖如下:
召回模型實(shí)現(xiàn)
新建movie_recommenders包,在該包下創(chuàng)建Retrieval.py文件,如下:
Retrieval.py主要為構(gòu)建、訓(xùn)練、導(dǎo)出電影推薦召回模型,包含以下步驟(代碼詳見上面召回模型的文章):
- 導(dǎo)入相關(guān)模塊
- 加載數(shù)據(jù)
- 數(shù)據(jù)預(yù)處理
- 生成詞匯表
- 構(gòu)建查詢塔
- 構(gòu)建候選條目塔
- 模型指標(biāo)
- 損失函數(shù)
- 構(gòu)建雙塔召回模型
- 訓(xùn)練和評估
- 預(yù)測
- 導(dǎo)出和加載模型
這里我們改下保存模型的路徑,把訓(xùn)練好的模型保存到項(xiàng)目路徑下,為后續(xù)做推薦準(zhǔn)備,其他代碼不做變動(dòng):
# 保存模型和加載模型
# with tempfile.TemporaryDirectory() as tmp:
# path = os.path.join(tmp, "model")
path = "C:\data\python\space\MovieRecommenders\models\\retrieval\\"
tf.saved_model.save(index, path)
loaded = tf.saved_model.load(path)
scores, titles = loaded(["42"])
print(f"Recommendations: {scores[0][:3]}")
print(f"Recommendations: {titles[0][:3]}")
點(diǎn)擊運(yùn)行,控制臺訓(xùn)練、評估、推薦結(jié)果相關(guān)日志輸出如下:
C:\data\python\space\MovieRecommenders\venv\Scripts\python.exe C:\data\python\space\MovieRecommenders\movie_recommenders\Retrieval.py
Epoch 1/3
10/10