日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

NeuCF源码中用到的模块(函数)

發(fā)布時間:2023/11/29 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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)建占位符張量。
返回:一個張量。 (2)Embedding(): 將正整數(shù)(索引值)轉(zhuǎn)換為固定尺寸的稠密向量。 例如: [[4], [20]] -> [[0.25, 0.1], [0.6, -0.2]]。 該層只能用作模型中的第一層。 參數(shù):
  • 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 層的輸出尺寸就無法計算)。
輸入尺寸: 尺寸為?(batch_size, sequence_length)?的 2D 張量。 輸出尺寸: 尺寸為?(batch_size, sequence_length, output_dim)?的 3D 張量。 (3)Flatten(): 將輸入展平。不影響批量大小。 參數(shù)
  • 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
(4)Dense(): 就是常用的全連接層。 Dense?實現(xiàn)以下操作:?output = activation(dot(input, kernel) + bias)?其中?activation?是按逐個元素計算的激活函數(shù),kernel是由網(wǎng)絡(luò)層創(chuàng)建的權(quán)值矩陣,以及?bias?是其創(chuàng)建的偏置向量 (只在?use_bias?為?True?時才有用)。
  • 注意: 如果該層的輸入的秩大于2,那么它首先被展平然后 再計算與?kernel?的點乘。
參數(shù)
  • 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)。
輸入尺寸:? 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) 參數(shù):
  • 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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。