这是一个回归问题
我的自定义 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) 我有一个字典,我想使用 .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”对象不可下标
我希望默认函数仅在密钥不存在时执行。