小编ma7*_*555的帖子

Tensorflow Keras RMSE 指标返回的结果与我自己构建的 RMSE 损失函数不同

这是一个回归问题

我的自定义 RMSE 损失:

def root_mean_squared_error_loss(y_true, y_pred):
    return tf.keras.backend.sqrt(tf.keras.losses.MSE(y_true, y_pred))
Run Code Online (Sandbox Code Playgroud)

训练代码示例,其中 create_model 返回一个密集的全连接序列模型

from tensorflow.keras.metrics import RootMeanSquaredError
model = create_model()
model.compile(loss=root_mean_squared_error_loss, optimizer='adam', metrics=[RootMeanSquaredError()])

model.fit(train_.values,
          targets,
          validation_split=0.1,
          verbose=1,
          batch_size=32)
Run Code Online (Sandbox Code Playgroud)
Train on 3478 samples, validate on 387 samples
Epoch 1/100
3478/3478 [==============================] - 2s 544us/sample - loss: 1.1983 - root_mean_squared_error: 0.7294 - val_loss: 0.7372 - val_root_mean_squared_error: 0.1274
Epoch 2/100
3478/3478 [==============================] - 1s 199us/sample - loss: 0.8371 - root_mean_squared_error: 0.3337 - val_loss: 0.7090 - val_root_mean_squared_error: 0.1288
Epoch 3/100
3478/3478 [==============================] - 1s …
Run Code Online (Sandbox Code Playgroud)

python keras tensorflow loss-function tf.keras

6
推荐指数
1
解决办法
2721
查看次数

具有默认值的 python 字典 .get() 方法即使不应该执行也会抛出异常

我有一个字典,我想使用 .get() 方法检索一些值,如果键不存在,则应执行返回正确值的默认函数,但仅当键不存在时才应执行展示。

我尝试删除默认值并且它有效,那么为什么即使不使用该函数也会执行它?

SQL 查询不会返回任何内容,因为它只包含字典中尚未存在的值

def get_port():

    def default():
        cursor.execute("SELECT port FROM table WHERE server=%s LIMIT 1",(server_name,))
        return cursor.fetchone()[0]

    port = {
        'server1': 2222,
        'server2': 2223,
        'server3': 2224
        }
    #print(port.get(server_name)) << Works
    return port.get(server_name, default())
Run Code Online (Sandbox Code Playgroud)

错误:

返回cursor.fetchone()[0] TypeError:“NoneType”对象不可下标

我希望默认函数仅在密钥不存在时执行。

python python-3.x

4
推荐指数
1
解决办法
1271
查看次数

标签 统计

python ×2

keras ×1

loss-function ×1

python-3.x ×1

tensorflow ×1

tf.keras ×1