Python wrapper for damo, a set of fast and robust hash functions.
Project description
Damo-Embedding
Quick Install
pip install damo-embedding
Example
DeepFM
import torch
import torch.nn as nn
from damo_embedding import Embedding
class DeepFM(torch.nn.Module):
def __init__(
self,
emb_size: int,
fea_size: int,
hid_dims=[256, 128],
num_classes=1,
dropout=[0.2, 0.2],
**kwargs,
):
super(DeepFM, self).__init__()
self.emb_size = emb_size
self.fea_size = fea_size
initializer = {
"name": "truncate_normal",
"mean": float(kwargs.get("mean", 0.0)),
"stddev": float(kwargs.get("stddev", 0.0001)),
}
optimizer = {
"name": "adam",
"gamma": float(kwargs.get("gamma", 0.001)),
"beta1": float(kwargs.get("beta1", 0.9)),
"beta2": float(kwargs.get("beta2", 0.999)),
"lambda": float(kwargs.get("lambda", 0.0)),
"epsilon": float(kwargs.get("epsilon", 1e-8)),
}
self.w = Embedding(
1,
initializer=initializer,
optimizer=optimizer,
**kwargs,
)
self.v = Embedding(
self.emb_size,
initializer=initializer,
optimizer=optimizer,
**kwargs,
)
self.w0 = torch.zeros(1, dtype=torch.float32, requires_grad=True)
self.dims = [fea_size * emb_size] + hid_dims
self.layers = nn.ModuleList()
for i in range(1, len(self.dims)):
self.layers.append(nn.Linear(self.dims[i - 1], self.dims[i]))
self.layers.append(nn.BatchNorm1d(self.dims[i]))
self.layers.append(nn.BatchNorm1d(self.dims[i]))
self.layers.append(nn.ReLU())
self.layers.append(nn.Dropout(dropout[i - 1]))
self.layers.append(nn.Linear(self.dims[-1], num_classes))
self.sigmoid = nn.Sigmoid()
def forward(self, input: torch.Tensor) -> torch.Tensor:
"""forward
Args:
input (torch.Tensor): input tensor
Returns:
tensor.Tensor: deepfm forward values
"""
assert input.shape[1] == self.fea_size
w = self.w.forward(input)
v = self.v.forward(input)
square_of_sum = torch.pow(torch.sum(v, dim=1), 2)
sum_of_square = torch.sum(v * v, dim=1)
fm_out = (
torch.sum((square_of_sum - sum_of_square)
* 0.5, dim=1, keepdim=True)
+ torch.sum(w, dim=1)
+ self.w0
)
dnn_out = torch.flatten(v, 1)
for layer in self.layers:
dnn_out = layer(dnn_out)
out = fm_out + dnn_out
out = self.sigmoid(out)
return out
Save Model
from damo_embedding import save_model
model = DeepFM(8, 39)
save_model(model, "./")
Document
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
damo-embedding-1.1.0.tar.gz
(44.2 kB
view hashes)
Built Distributions
Close
Hashes for damo_embedding-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d0ed43b101259e53b91ab90a356466738eafb574361a3a1d4990e4bdcf087f70 |
|
MD5 | 1d24384240d45b09f43908f2d94cbfa6 |
|
BLAKE2b-256 | c531dc466237d7c28999e541744b2260e3f7f331e04af0edcc827353a7f70cba |
Close
Hashes for damo_embedding-1.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7b2aea895d7fb25cf3ba6bf148037b347ac919ac3b55c8325e8c43d12db9424b |
|
MD5 | fb37f67a275dcf5fc06056001f5e1774 |
|
BLAKE2b-256 | fccb703390cdf9b821e811e0551068f4a044ca122368f192bd4fe1dcfe4a4f9e |
Close
Hashes for damo_embedding-1.1.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 38bfdec0fcd4f727b8ae9271376d591d215b5e47f6bd867233815a8a34a5c7e1 |
|
MD5 | 53cf5dd558ecf588ccc04a4b8fc755be |
|
BLAKE2b-256 | 90716d650ff33164eaa613704e778b02022d6587c203765151faf89294958cca |
Close
Hashes for damo_embedding-1.1.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d67feb66939d7ab7be872ff11e9318b2295eee685c77844305d057081c9fc665 |
|
MD5 | d5fd2be7c92145400d2ea2b69790aac5 |
|
BLAKE2b-256 | 8584f0d17e5388e301f2b0a3f38a47fe558fa627a32d2e9c1b3c4630ebf32bda |
Close
Hashes for damo_embedding-1.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 423a636eb8939a2a77a11ee174316d5cecae737e9a940f3ec325485dadb8ef35 |
|
MD5 | 8bf8150552d634a6cfef4449cdaf93a4 |
|
BLAKE2b-256 | 76cd5bb224834efb6f33183f5730232dd10bc0a43fa00fef179b747202704d41 |
Close
Hashes for damo_embedding-1.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5a5eb6e2bc2c4de2a725e92ff31801791111d5ee01b60498519185637ef5a7ba |
|
MD5 | 0e7c990b930d3b37fb875b89b63a5748 |
|
BLAKE2b-256 | dbe92a7d56c220ff771d8c44375f4cf95c4913db9d028e88a8689719fdd82c11 |
Close
Hashes for damo_embedding-1.1.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 88e50fc731bb2b720bd00d08462b40e3bb721e4d4a8e00211d22aeb7b9c1f8b7 |
|
MD5 | 1afe7bd84335195dd05e21bebab5b249 |
|
BLAKE2b-256 | 274d04011f0b14849f7484b1c30bc0e29fedb1dc04a952907b9752c99a0b06aa |
Close
Hashes for damo_embedding-1.1.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7db8153ef0e0c97fc4b5832576b721dae8565bd3b4a4b12d755164e89b85cc22 |
|
MD5 | 0f3c2c35faf0fe9a2fb1cb0712ec26ed |
|
BLAKE2b-256 | dfb1b582da2eabf96613198e1cb4d6b1517e515596196ffe7554c542c0d7a53c |
Close
Hashes for damo_embedding-1.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 71eb054933a4fa9034fc0e67f0de00022ee4a8e215f96d489e0505f500ad3276 |
|
MD5 | b919298a143cf6889b1f0356809867a9 |
|
BLAKE2b-256 | 9aebd87e2e8251d1362d95947f8fc59ca054e61f8ef53f6c356d27519edd10f6 |
Close
Hashes for damo_embedding-1.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 33cc666371ae5e857c84211fe42602e86c15c7a3b70c228f6acaeff906113a8d |
|
MD5 | 1b0692cc58944b19ecb6fbe144f58070 |
|
BLAKE2b-256 | e7d8d5508722c4749c49b17e4314e9aa67f20c9838cc6d7bce741d99cca24e7c |
Close
Hashes for damo_embedding-1.1.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f21c5ee9c5a4049a1c7472ea84eb3de43af44642bc914c2f8334088e5dc57bcb |
|
MD5 | 97868b346bccdd04a761a8b71047768d |
|
BLAKE2b-256 | 38fbc3107c15ac5a1bc0239900cd126cb261c338cf50a6fa2d02a1e9466053db |
Close
Hashes for damo_embedding-1.1.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 47ec133dda2997b8c26b36d9cf8e87380c94e8f3411afa5258750a9950485e52 |
|
MD5 | d009a61fe9e0c96a81b35f16204ac808 |
|
BLAKE2b-256 | 852149fb619f65264ad0a36d1adb4101c0c64b189cfc86aa97570d094a3ec453 |
Close
Hashes for damo_embedding-1.1.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3043ebfa9dcef0802d91e837328277f3b0f7aeac5a250f098655d8a1e5c4526a |
|
MD5 | 80739e0dd0285a43b73c61cc9fe6cba1 |
|
BLAKE2b-256 | 973e24c07e11c49571e3837890c79c363093d829e3f257f71c86c5d2c0f3886a |
Close
Hashes for damo_embedding-1.1.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 09eed71f31ca0ff185b632931a5925bbe0bb2eaef81261002842ecdabcdf065e |
|
MD5 | da155f44342e60845162842437da3f2f |
|
BLAKE2b-256 | bb408392b511503f7d5a7af4bbf6b9cbe9dd54401ff2e07bf38dfad5e2ed669f |
Close
Hashes for damo_embedding-1.1.0-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 11e6c95c0df2bab97504aa4bbc6ecd11793bbf5e3ec7560b4859b8ce1acdbf05 |
|
MD5 | 9c57ba15354bd0639cf47ea37de92f2c |
|
BLAKE2b-256 | 457f8320156dfde91e938e2f476b0b1c19ac9f2031c2dac81abf2bde5b8dbb25 |
Close
Hashes for damo_embedding-1.1.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d4a5b225f122e64e98cb4d1252ed7274779e2d4056bf4efbc90eff576c8d07c2 |
|
MD5 | 25063592cbbcf2775e3b7eedd0317f7b |
|
BLAKE2b-256 | 82fbb9ae324a2d1f621a0c1d31cab78f4d5f203a46daabcf360be5132235e7a6 |
Close
Hashes for damo_embedding-1.1.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 94e426493a2cfe4d21529eeb886fb5810a68c8538766d371c3efed8705678641 |
|
MD5 | d51712be6cbee2c916aa3dd623975c98 |
|
BLAKE2b-256 | 9ea8e5fd996ca15d3505f62197453bc7cb337dd38f61f492d835cfcbd0a3c992 |
Close
Hashes for damo_embedding-1.1.0-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2be46eff235de4d16a4e8f2c6747c6ae3a06c72254f4a57ad03df892c7dd0a5b |
|
MD5 | 309f236ce15e2ed0a08197633a2ae6b9 |
|
BLAKE2b-256 | cd23eff35e002f9f20f4ebe90629dd90680af4de65a7ff6bc1048e4a907ada6b |