Keras model's embedding weight get NaN value
I am working on 3 categorical and 19 numerical features in which I plan to use trained embedding weights (from categorical features). After training, and get weights from embedding layers, I got NaN values. Please help me if you know problem.
This is the model:
def create_model(embedding1_vocab_size = 7,
embedding1_dim = 3,
embedding2_vocab_size = 7,
embedding2_dim = 3,
embedding3_vocab_size = 7,
embedding3_dim = 3):
embedding1_input = Input((1,))
embedding1 = Embedding(input_dim=embedding1_vocab_size,
output_dim=embedding1_dim,
name='embedding1')(embedding1_input)
embedding2_input = Input((1,))
embedding2 = Embedding(input_dim=embedding2_vocab_size,
output_dim=embedding2_dim,
name='embedding2')(embedding2_input)
embedding3_input = Input((1,))
embedding3 = Embedding(input_dim=embedding3_vocab_size,
output_dim=embedding3_dim,
name='embedding3')(embedding3_input)
flatten = Flatten()(concatenate([embedding1, embedding2, embedding3]))
normal_input = Input((19,)) # đây là số còn lại của các dữ liệu như numberical của data
merged_input = concatenate([flatten, normal_input], axis=-1)
dense1 = Dense(128, activation='relu')(merged_input)
dropout1 = Dropout(0.001)(dense1)
dense2 = Dense(128, activation='relu')(dropout1)
dropout2 = Dropout(0.001)(dense2)
output = Dense(1, activation='linear')(dropout2)
model = Model(inputs=[embedding1_input, embedding2_input,embedding3_input, normal_input], outputs=output)
model.compile(loss='mean_squared_error', optimizer=Adam(lr=.05, clipnorm=1.), metrics=['mae'])
return model
How it look like by layers:
The result of embedding weights:
weights = model.get_layer('embedding1').get_weights()
pd.DataFrame(weights[0])
0 1 2
0 -0.036907 -0.047382 -0.047246
1 NaN NaN NaN
2 NaN NaN NaN
3 NaN NaN NaN
4 NaN NaN NaN
... ... ... ...
21173 NaN NaN NaN
21174 NaN NaN NaN
21175 NaN NaN NaN
21176 NaN NaN NaN
21177 NaN NaN NaN
21178 rows × 3 columns
I am thinking about the problem on target values which contain negative numbers (negative numbers means the package is returned to suppliers.
Any help is appriciated.
Topic weight-initialization machine-learning-model keras tensorflow python
Category Data Science