NeuCF源码中用到的模块(函数)
生活随笔
收集整理的這篇文章主要介紹了
NeuCF源码中用到的模块(函数)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
論文:《Neural Collaborative Filtering》源碼中用到的模塊(函數(shù))
from keras.layers import Embedding, Input, Dense, merge, Reshape, Merge, Flatten
?
(1)Input():用于實例化?Keras 張量 keras.engine.input_layer.Input() 參數(shù):- shape: 一個尺寸元組(整數(shù)),不包含批量大小。 例如,shape=(32,)?表明期望的輸入是按批次的 32 維向量。
- batch_shape: 一個尺寸元組(整數(shù)),包含批量大小。 例如,batch_shape=(10, 32)表明期望的輸入是 10 個 32 維向量。?batch_shape=(None, 32)?表明任意批次大小的 32 維向量。
- name: 一個可選的層的名稱的字符串。 在一個模型中應該是唯一的(不可以重用一個名字兩次)。 如未提供,將自動生成。
- dtype: 輸入所期望的數(shù)據(jù)類型,字符串表示 (float32,?float64,?int32...)
- sparse: 一個布爾值,指明需要創(chuàng)建的占位符是否是稀疏的。
- tensor: 可選的可封裝到?Input?層的現(xiàn)有張量。 如果設(shè)定了,那么這個層將不會創(chuàng)建占位符張量。
- input_dim: int > 0。詞匯表大小, 即,最大整數(shù) index + 1。
- output_dim: int >= 0。詞向量的維度。
- embeddings_initializer:?embeddings?矩陣的初始化方法 (詳見?initializers)。
- embeddings_regularizer:?embeddings?matrix 的正則化方法 (詳見?regularizer)。
- embeddings_constraint:?embeddings?matrix 的約束函數(shù) (詳見?constraints)。
- mask_zero: 是否把 0 看作為一個應該被遮蔽的特殊的 "padding" 值。 這對于可變長的?循環(huán)神經(jīng)網(wǎng)絡(luò)層?十分有用。 如果設(shè)定為?True,那么接下來的所有層都必須支持 masking,否則就會拋出異常。 如果 mask_zero 為?True,作為結(jié)果,索引 0 就不能被用于詞匯表中 (input_dim 應該與 vocabulary + 1 大小相同)。
- input_length: 輸入序列的長度,當它是固定的時。 如果你需要連接?Flatten?和?Dense?層,則這個參數(shù)是必須的 (沒有它,dense 層的輸出尺寸就無法計算)。
- data_format:一個字符串,其值為?channels_last(默認值)或者?channels_first。它表明輸入的維度的順序。此參數(shù)的目的是當模型從一種數(shù)據(jù)格式切換到另一種數(shù)據(jù)格式時保留權(quán)重順序。channels_last?對應著尺寸為?(batch, ..., channels)?的輸入,而?channels_first?對應著尺寸為?(batch, channels, ...)?的輸入。默認為?image_data_format?的值,你可以在 Keras 的配置文件?~/.keras/keras.json?中找到它。如果你從未設(shè)置過它,那么它將是?channels_last
- 注意: 如果該層的輸入的秩大于2,那么它首先被展平然后 再計算與?kernel?的點乘。
- units: 正整數(shù),輸出空間維度。
- activation: 激活函數(shù) (詳見?activations)。 若不指定,則不使用激活函數(shù) (即,「線性」激活:?a(x) = x)。
- use_bias: 布爾值,該層是否使用偏置向量。
- kernel_initializer:?kernel?權(quán)值矩陣的初始化器 (詳見?initializers)。
- bias_initializer: 偏置向量的初始化器 (see?initializers).
- kernel_regularizer: 運用到?kernel?權(quán)值矩陣的正則化函數(shù) (詳見?regularizer)。
- bias_regularizer: 運用到偏置向的的正則化函數(shù) (詳見?regularizer)。
- activity_regularizer: 運用到層的輸出的正則化函數(shù) (它的 "activation")。 (詳見?regularizer)。
- kernel_constraint: 運用到?kernel?權(quán)值矩陣的約束函數(shù) (詳見?constraints)。
- bias_constraint: 運用到偏置向量的約束函數(shù) (詳見?constraints)。
- optimizer: 字符串(優(yōu)化器名)或者優(yōu)化器實例。 詳見?optimizers。
- loss: 字符串(目標函數(shù)名)或目標函數(shù)。 詳見?losses。 如果模型具有多個輸出,則可以通過傳遞損失函數(shù)的字典或列表,在每個輸出上使用不同的損失。 模型將最小化的損失值將是所有單個損失的總和。
- metrics: 在訓練和測試期間的模型評估標準。 通常你會使用?metrics = ['accuracy']。 要為多輸出模型的不同輸出指定不同的評估標準, 還可以傳遞一個字典,如?metrics = {'output_a':'accuracy'}。
- loss_weights: 可選的指定標量系數(shù)(Python 浮點數(shù))的列表或字典, 用以衡量損失函數(shù)對不同的模型輸出的貢獻。 模型將最小化的誤差值是由?loss_weights?系數(shù)加權(quán)的加權(quán)總和誤差。 如果是列表,那么它應該是與模型輸出相對應的 1:1 映射。 如果是張量,那么應該把輸出的名稱(字符串)映到標量系數(shù)。
- sample_weight_mode: 如果你需要執(zhí)行按時間步采樣權(quán)重(2D 權(quán)重),請將其設(shè)置為?temporal。 默認為?None,為采樣權(quán)重(1D)。 如果模型有多個輸出,則可以通過傳遞 mode 的字典或列表,以在每個輸出上使用不同的?sample_weight_mode。
- weighted_metrics: 在訓練和測試期間,由 sample_weight 或 class_weight 評估和加權(quán)的度量標準列表。
- target_tensors: 默認情況下,Keras 將為模型的目標創(chuàng)建一個占位符,在訓練過程中將使用目標數(shù)據(jù)。 相反,如果你想使用自己的目標張量(反過來說,Keras 在訓練期間不會載入這些目標張量的外部 Numpy 數(shù)據(jù)), 您可以通過?target_tensors?參數(shù)指定它們。 它可以是單個張量(單輸出模型),張量列表,或一個映射輸出名稱到目標張量的字典。
- **kwargs: 當使用 Theano/CNTK 后端時,這些參數(shù)被傳入?K.function。 當使用 TensorFlow 后端時,這些參數(shù)被傳遞到?tf.Session.run。
?
?
?
【Reference】
1、Docs??Layers ?核心網(wǎng)絡(luò)層:?https://keras.io/zh/layers/core/
2、Docs??模型 ?函數(shù)式 API:https://keras.io/zh/models/model/#compile?
轉(zhuǎn)載于:https://www.cnblogs.com/shenxiaolin/p/11163061.html
總結(jié)
以上是生活随笔為你收集整理的NeuCF源码中用到的模块(函数)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 做梦梦到要掉牙齿是什么预兆
- 下一篇: poj2017