提交 4053d4b4 编写于 作者: J jrzaurin

using ModelDict instead of setattr

上级 6f5ac1d8
...@@ -50,8 +50,10 @@ class DeepDense(nn.Module): ...@@ -50,8 +50,10 @@ class DeepDense(nn.Module):
self.continuous_cols = continuous_cols self.continuous_cols = continuous_cols
self.deep_column_idx = deep_column_idx self.deep_column_idx = deep_column_idx
for col,val,dim in embeddings_input: self.embedding_layers = nn.ModuleDict({'emb_layer_'+col: nn.Embedding(val, dim)
setattr(self, 'emb_layer_'+col, nn.Embedding(val, dim)) for col, val, dim in embeddings_input})
# for col,val,dim in embeddings_input:
# setattr(self, 'emb_layer_'+col, nn.Embedding(val, dim))
input_emb_dim = np.sum([emb[2] for emb in embeddings_input])+len(continuous_cols) input_emb_dim = np.sum([emb[2] for emb in embeddings_input])+len(continuous_cols)
hidden_layers = [input_emb_dim] + hidden_layers hidden_layers = [input_emb_dim] + hidden_layers
dropout = [0.0] + dropout dropout = [0.0] + dropout
...@@ -64,8 +66,10 @@ class DeepDense(nn.Module): ...@@ -64,8 +66,10 @@ class DeepDense(nn.Module):
self.dense.add_module('last_linear', nn.Linear(hidden_layers[-1], output_dim)) self.dense.add_module('last_linear', nn.Linear(hidden_layers[-1], output_dim))
def forward(self, X:Tensor)->Tensor: def forward(self, X:Tensor)->Tensor:
emb = [getattr(self, 'emb_layer_'+col)(X[:,self.deep_column_idx[col]].long()) emb = [self.embedding_layers['emb_layer_'+col](X[:,self.deep_column_idx[col]].long())
for col,_,_ in self.embeddings_input] for col,_,_ in self.embeddings_input]
# emb = [getattr(self, 'emb_layer_'+col)(X[:,self.deep_column_idx[col]].long())
# for col,_,_ in self.embeddings_input]
if self.continuous_cols: if self.continuous_cols:
cont_idx = [self.deep_column_idx[col] for col in self.continuous_cols] cont_idx = [self.deep_column_idx[col] for col in self.continuous_cols]
cont = [X[:, cont_idx].float()] cont = [X[:, cont_idx].float()]
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册