tensorflow回归:样本_重量选项不起作用,损失即将出现

2024-05-14 16:38:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图建立一个自动编码器与加权均方误差作为损失函数。但损失是nan。我尝试删除sample_weight选项,效果很好。还尝试将所有权重更改为1,其中损失再次显示为nan

示范建筑规范:

a_train = df1.drop(dropcols,axis=1).values
n_cols = a_train.shape[1]
a_train_wt = df1.wt.to_numpy()
reg_parm = 0

def build_model():
    model = keras.Sequential([
        keras.layers.Dense(1000, activation='relu', input_shape=[n_cols], kernel_regularizer=keras.regularizers.l2(l=reg_parm),name = 'encoder'),
        keras.layers.Dropout(0.25),
        keras.layers.Dense(35, activation='relu', kernel_regularizer=keras.regularizers.l2(l=reg_parm),name = 'middlelayer'),
        keras.layers.Dense(1000, activation='relu', kernel_regularizer=keras.regularizers.l2(l=reg_parm), name = 'decoder'),
        keras.layers.Dense(n_cols)
        ])
    optimizer = tf.keras.optimizers.SGD(learning_rate=0.01, momentum=0.9)
    model.compile(loss='mse',
                    optimizer=optimizer,
                    metrics=[ 'mse'])
    return model
model = build_model()
EPOCHS = 3

固定为sample_weight的代码:

history = model.fit(a_train, a_train,epochs=EPOCHS,  verbose=0,shuffle = True,
sample_weight= np.ones_like(a_train_wt))
history.history

输出为

WARNING:tensorflow:sample_weight modes were coerced from
  ...
    to
  ['...']
>>> history.history
{'loss': [nan, nan, nan], 'mse': [nan, nan, nan]}

带有sample_weight选项和实际权重的代码:

history = model.fit(a_train, a_train,epochs=EPOCHS,  verbose=0,shuffle = True,
sample_weight= a_train_wt)
history.history

输出为

WARNING:tensorflow:sample_weight modes were coerced from
  ...
    to
  ['...']
>>> history.history
{'loss': [nan, nan, nan], 'mse': [nan, nan, nan]}

不带sample_weight选项的代码:

history = model.fit(a_train, a_train,epochs=EPOCHS,  verbose=0,shuffle = True)
history.history

输出为

>>> history.history
{'loss': [0.025739491703135765, 0.014569135967237794, 0.01305462488841959], 'mse': [0.025739575, 0.014569142, 0.0130546]}

tensorflow版本:

>>> print(tf.__version__)
2.1.0
>>> import sys
>>> print(sys.version)
3.7.7 (default, Apr 15 2020, 05:09:04) [MSC v.1916 64 bit (AMD64)]

Tags: samplemodellayerstrainnanreghistorykeras

热门问题