NeuCF源碼中用到的模塊(函數)

論文:《Neural Collaborative Filtering》源碼中用到的模塊(函數)

from keras.layers import Embedding, Input, Dense, merge, Reshape, Merge, Flatten

?

(1)Input():用于實例化?Keras 張量
keras.engine.input_layer.Input()
參數:
  • shape: 一個尺寸元組(整數),不包含批量大小。 例如,shape=(32,)?表明期望的輸入是按批次的 32 維向量。
  • batch_shape: 一個尺寸元組(整數),包含批量大小。 例如,batch_shape=(10, 32)表明期望的輸入是 10 個 32 維向量。?batch_shape=(None, 32)?表明任意批次大小的 32 維向量。
  • name: 一個可選的層的名稱的字符串。 在一個模型中應該是唯一的(不可以重用一個名字兩次)。 如未提供,將自動生成。
  • dtype: 輸入所期望的數據類型,字符串表示 (float32,?float64,?int32...)
  • sparse: 一個布爾值,指明需要創建的占位符是否是稀疏的。
  • tensor: 可選的可封裝到?Input?層的現有張量。 如果設定了,那么這個層將不會創建占位符張量。
返回:一個張量。
(2)Embedding(): 將正整數(索引值)轉換為固定尺寸的稠密向量。 例如: [[4], [20]] -> [[0.25, 0.1], [0.6, -0.2]]。 該層只能用作模型中的第一層。
參數:
  • input_dim: int > 0。詞匯表大小, 即,最大整數 index + 1。
  • output_dim: int >= 0。詞向量的維度。
  • embeddings_initializer:?embeddings?矩陣的初始化方法 (詳見?initializers)。
  • embeddings_regularizer:?embeddings?matrix 的正則化方法 (詳見?regularizer)。
  • embeddings_constraint:?embeddings?matrix 的約束函數 (詳見?constraints)。
  • mask_zero: 是否把 0 看作為一個應該被遮蔽的特殊的 "padding" 值。 這對于可變長的?循環神經網絡層?十分有用。 如果設定為?True,那么接下來的所有層都必須支持 masking,否則就會拋出異常。 如果 mask_zero 為?True,作為結果,索引 0 就不能被用于詞匯表中 (input_dim 應該與 vocabulary + 1 大小相同)。
  • input_length: 輸入序列的長度,當它是固定的時。 如果你需要連接?Flatten?和?Dense?層,則這個參數是必須的 (沒有它,dense 層的輸出尺寸就無法計算)。
輸入尺寸: 尺寸為?(batch_size, sequence_length)?的 2D 張量。
輸出尺寸: 尺寸為?(batch_size, sequence_length, output_dim)?的 3D 張量。
(3)Flatten(): 將輸入展平。不影響批量大小。
參數
  • data_format:一個字符串,其值為?channels_last(默認值)或者?channels_first。它表明輸入的維度的順序。此參數的目的是當模型從一種數據格式切換到另一種數據格式時保留權重順序。channels_last?對應著尺寸為?(batch, ..., channels)?的輸入,而?channels_first?對應著尺寸為?(batch, channels, ...)?的輸入。默認為?image_data_format?的值,你可以在 Keras 的配置文件?~/.keras/keras.json?中找到它。如果你從未設置過它,那么它將是?channels_last
(4)Dense(): 就是常用的全連接層。
Dense?實現以下操作:?output = activation(dot(input, kernel) + bias)?其中?activation?是按逐個元素計算的激活函數,kernel是由網絡層創建的權值矩陣,以及?bias?是其創建的偏置向量 (只在?use_bias?為?True?時才有用)。
  • 注意: 如果該層的輸入的秩大于2,那么它首先被展平然后 再計算與?kernel?的點乘。
參數
  • units: 正整數,輸出空間維度。
  • activation: 激活函數 (詳見?activations)。 若不指定,則不使用激活函數 (即,「線性」激活:?a(x) = x)。
  • use_bias: 布爾值,該層是否使用偏置向量。
  • kernel_initializer:?kernel?權值矩陣的初始化器 (詳見?initializers)。
  • bias_initializer: 偏置向量的初始化器 (see?initializers).
  • kernel_regularizer: 運用到?kernel?權值矩陣的正則化函數 (詳見?regularizer)。
  • bias_regularizer: 運用到偏置向的的正則化函數 (詳見?regularizer)。
  • activity_regularizer: 運用到層的輸出的正則化函數 (它的 "activation")。 (詳見?regularizer)。
  • kernel_constraint: 運用到?kernel?權值矩陣的約束函數 (詳見?constraints)。
  • bias_constraint: 運用到偏置向量的約束函數 (詳見?constraints)。
輸入尺寸:? nD 張量,尺寸:?(batch_size, ..., input_dim)。 最常見的情況是一個尺寸為?(batch_size, input_dim)?的 2D 輸入。
輸出尺寸: nD 張量,尺寸:?(batch_size, ..., units)。 例如,對于尺寸為?(batch_size, input_dim)?的 2D 輸入, 輸出的尺寸為?(batch_size, units)。
(5)compile():用于配置訓練模型
compile(optimizer, loss=None, metrics=None, loss_weights=None, sample_weight_mode=None, weighted_metrics=None, target_tensors=None)
參數:
  • optimizer: 字符串(優化器名)或者優化器實例。 詳見?optimizers。
  • loss: 字符串(目標函數名)或目標函數。 詳見?losses。 如果模型具有多個輸出,則可以通過傳遞損失函數的字典或列表,在每個輸出上使用不同的損失。 模型將最小化的損失值將是所有單個損失的總和。
  • metrics: 在訓練和測試期間的模型評估標準。 通常你會使用?metrics = ['accuracy']。 要為多輸出模型的不同輸出指定不同的評估標準, 還可以傳遞一個字典,如?metrics = {'output_a':'accuracy'}。
  • loss_weights: 可選的指定標量系數(Python 浮點數)的列表或字典, 用以衡量損失函數對不同的模型輸出的貢獻。 模型將最小化的誤差值是由?loss_weights?系數加權的加權總和誤差。 如果是列表,那么它應該是與模型輸出相對應的 1:1 映射。 如果是張量,那么應該把輸出的名稱(字符串)映到標量系數。
  • sample_weight_mode: 如果你需要執行按時間步采樣權重(2D 權重),請將其設置為?temporal。 默認為?None,為采樣權重(1D)。 如果模型有多個輸出,則可以通過傳遞 mode 的字典或列表,以在每個輸出上使用不同的?sample_weight_mode。
  • weighted_metrics: 在訓練和測試期間,由 sample_weight 或 class_weight 評估和加權的度量標準列表。
  • target_tensors: 默認情況下,Keras 將為模型的目標創建一個占位符,在訓練過程中將使用目標數據。 相反,如果你想使用自己的目標張量(反過來說,Keras 在訓練期間不會載入這些目標張量的外部 Numpy 數據), 您可以通過?target_tensors?參數指定它們。 它可以是單個張量(單輸出模型),張量列表,或一個映射輸出名稱到目標張量的字典。
  • **kwargs: 當使用 Theano/CNTK 后端時,這些參數被傳入?K.function。 當使用 TensorFlow 后端時,這些參數被傳遞到?tf.Session.run。

?

?

?

【Reference】

1、Docs??Layers ?核心網絡層:?https://keras.io/zh/layers/core/

2、Docs??模型 ?函數式 API:https://keras.io/zh/models/model/#compile?

轉載于:https://www.cnblogs.com/shenxiaolin/p/11163061.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/392748.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/392748.shtml
英文地址,請注明出處:http://en.pswp.cn/news/392748.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

awt jtable 多線程加載圖片_Java項目實戰之天天酷跑(三):緩沖加載游戲界面

前文,我們完成了開始游戲界面的搭建。本文將實現緩沖加載界面的搭建。并搭建與前面倆界面間的橋梁。實現輸入正確用戶名密碼后,進入開始游戲界面,點擊開始游戲按鈕后,進入緩沖加載界面的功能。界面示意圖:具體要求&…

When Cyber Security Meets Machine Learning 機器學習 安全分析 對于安全領域的總結很有用 看未來演進方向...

鏈接:http://ucys.ugr.es/jnic2016/docs/MachineLearning_LiorRokachJNIC2016.pdf https://people.eecs.berkeley.edu/~adj/publications/paper-files/SecML-MLJ2010.pdf 一些關鍵點: 算了,不總結了。 本文轉自張昺華-sky博客園博客&#xff…

如何使用TypeScript和Webpack Hot Module Replacement構建Apollo GraphQL服務器

by Derek Fong由德里克方(Derek Fong) 如何使用TypeScript和Webpack Hot Module Replacement構建Apollo GraphQL服務器 (How to build an Apollo GraphQL server with TypeScript and Webpack Hot Module Replacement) Let’s build an Apollo GraphQL Server with TypeScript…

本地修改指向服務器,本地修改指向服務器

本地修改指向服務器 內容精選換一換已獲取服務器管理員帳號與密碼。打開CMD運行窗口,輸入gpedit.msc,打開本地組策略編輯器。打開組策略在指定RD會話主機服務器的授權模式下拉列表中選擇按用戶。設置允許RD最大連接數位999999。設置結束已斷開連接的會話…

JUnit的使用

JUnit的作用(是一個第三方的組件,eclipse帶了JUnit) 一個工具,用于單元測試,Java Unit 單元單元:一個類或是一個方法2. 在eclipse中的使用 操作步驟:在工程名上點右鍵-> Build Path -> add Libraries –> JUnit 測試方法…

乘法運算

無符號mul和有符號imul,在編譯的過程中,先嘗試將乘法轉換成加法 或使用移位指令等周期轉移較短的指令,如果都沒有才用乘法指令 int main(int argc,char *argv) {int nVarOne argc;int nVarTwo argc;// 變量乘常量 (非2的冪)printf("nV…

leetcode 381. O(1) 時間插入、刪除和獲取隨機元素 - 允許重復

設計一個支持在平均 時間復雜度 O(1) 下, 執行以下操作的數據結構。 注意: 允許出現重復元素。 insert(val):向集合中插入元素 val。 remove(val):當 val 存在時,從集合中移除一個 val。 getRandom:從現有集合中隨機…

MAYA建模桌面一角_maya怎么建模逼真的學生書桌書桌桌面?

今天我們就來看看使用maya建模學生書桌的方法,這是實例教程,請看下文詳細介紹。NURBS曲線的基礎知識:NURBS曲面是由網狀的曲線組合而成,在maya中可以使用creat菜單下的CV Curve Tool(CV曲線工具)EP Curve Tool(EP曲線工具)來創建曲…

expect 批量修改服務器用戶密碼

每個技術人員離職,留下的人 就要修改他的服務器賬號密碼,很麻煩,故寫次腳本偷懶 change.sh 如下 12345678910#!/bin/bashfor i in awk {print $1} account.txt dojawk -v l"$i" {if(l$1)print $2} account.txt aawk -v l"$i&q…

虛擬機安裝服務器2008,VMware Workstation 虛擬機安裝64位windows 2008 R2 系統

偶看現在使用的電腦是 惠普 康柏 Elite 8300 MT Mini Tower,操作系統 Windows 7 旗艦版 64位基本硬件展示處理器 英特爾 第三代酷睿 i5-3470 3.20GHz 四核主板 惠普 3397內存 8 GB ( 記憶科技 DDR3 1600MHz / 鎂光 DDR3 1600MHz )主硬盤 西數 WDC WD5000AAKX-60U6A…

黑客入門之單機游戲外掛

轉載于: http://www.cnblogs.com/huipengbo/p/6887170.html 一.本文以植物大戰僵尸外掛的編寫為例,介紹單機游戲外掛的編寫和使用過程。 1.啟動單機游戲如:植物大戰僵尸如下圖 2.想明白我們寫外掛的目的:讓我們有充足的陽光數量來使用&#x…

如何使用瀏覽器控制臺通過JavaScript抓取并將數據保存在文件中

by Praveen Dubey通過Praveen Dubey 如何使用瀏覽器控制臺通過JavaScript抓取并將數據保存在文件中 (How to use the browser console to scrape and save data in a file with JavaScript) A while back I had to crawl a site for links, and further use those page links …

poj2017

1.鏈接地址 https://vjudge.net/problem/POJ-2017 2.問題描述 Bill and Ted are taking a road trip. But the odometer in their car is broken, so they dont know how many miles they have driven. Fortunately, Bill has a working stopwatch, so t…

NFL原則告訴我們做決策的時候,試圖找到一個能解決所有問題,“大而全”的方案是不存在的。我們應當找到最關心的問題,因地制宜做出選擇。——聚焦目標,取舍有道!...

資源匱乏原則: 有限的資源無法滿足無窮的需要及欲望; 因此想要多一點的某件東西,意味著必須放棄一些其他的東西; 因為資源匱乏,所以我們必須做出選擇。 NFL原則:沒有免費午餐定理(No Free Lunch)是wolpert和…

巨無霸Win8PE X64服務器維護專用,【13年4月4日】維護版win8pe【32位+64位+純64位】(支持BIOS+EFI)...

因為單獨一個PE是不夠用的,已經制作了合盤,可BIOS啟動,也可EFI啟動。詳情移步》歡迎下載使用,覺得好的話,請回帖支持一下,您的支持,就是我的動力。。。。預祝大家新的一年合家歡樂!工…

linux子線程運行的函數_Linux中線程使用詳解

4. 線程的屬性前面還說到過線程創建的時候是有屬性的,這個屬性由一個線程屬性對象來描述。線程屬性對象由pthread_attr_init()接口初始化,并由pthread_attr_destory()來銷毀,它們的完整定義是:int pthread_attr_init(pthread_attr…

數據源 連接oracle

https://blog.csdn.net/kk185800961/article/details/53065257 轉載于:https://www.cnblogs.com/BelieveFish/p/11164009.html

leetcode 140. 單詞拆分 II(記憶化)

給定一個非空字符串 s 和一個包含非空單詞列表的字典 wordDict,在字符串中增加空格來構建一個句子,使得句子中所有的單詞都在詞典中。返回所有這些可能的句子。 說明: 分隔時可以重復使用字典中的單詞。 你可以假設字典中沒有重復的單詞。 …

java mvp開發_如何從沒有軟件開發技能的想法變成現實的市場MVP???

java mvp開發by Mike Williams由Mike Williams 如何從沒有軟件開發技能的想法變成現實的市場MVP??? (How to go from idea to live marketplace MVP with no software development skills ???) Online marketplaces such as Airbnb, Turo, Hipcamp,…

Convolutional neural networks for artistic style transfer

https://harishnarayanan.org/writing/artistic-style-transfer/ 轉載于:https://www.cnblogs.com/guochen/p/6888478.html