R_平方与时代

2024-04-26 12:42:45 发布

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

早上好,我是python初学者,我正在尝试构建我的第一个神经网络。有没有办法描绘R2的进化与时代?我用以下方法计算R2:r2_score(y_test_pred, y_test)。我以这种方式构建了一个完全连接的神经网络:

optimizer = tf.keras.optimizers.Adam(lr=0.001)
model = Sequential()

# ,kernel_regularizer=l2(c), bias_regularizer=l2(c)
model.add(Dense(100, input_shape = (X_train.shape[1],), activation = 'relu',kernel_initializer='glorot_uniform'))
model.add(Dropout(0.2))
model.add(Dense(100, activation = 'relu',kernel_initializer='glorot_uniform'))
model.add(Dropout(0.2))
model.add(Dense(100, activation = 'relu',kernel_initializer='glorot_uniform'))

model.add(Dense(1,activation = 'linear',kernel_initializer='glorot_uniform'))

model.compile(loss = 'mse', optimizer = optimizer, metrics = ['mse'])

history = model.fit(X_train, y_train, epochs = 100,
                    validation_split = 0.1, shuffle=False, batch_size=250
                    )

history_dict = history.history
`

数据集由18个特征和1个标签组成,这是一项回归任务


Tags: testaddmodeltrain神经网络uniformactivationkernel
1条回答
网友
1楼 · 发布于 2024-04-26 12:42:45

您只需将其添加到compile行即可

model.compile(loss = 'mse', optimizer = optimizer, metrics = ['mse', r2_score])

如果您想这样做,您需要创建一个keras可以理解的度量

import tf.keras.backend as K

def r2_score(y_true, y_pred):
    SS_res =  K.sum(K.square(y_true - y_pred)) 
    SS_tot = K.sum(K.square(y_true - K.mean(y_true))) 
    return ( 1 - SS_res/(SS_tot + K.epsilon()) )

代码取自kaggle

对不起,我忘了添加张力板部件

如果您想在培训期间看到损失/指标的演变,可以使用Tensorboard,如the doc

logdir = "logs/" + datetime.now().strftime("%Y%m%d-%H%M%S")
tensorboard_callback = tf.keras.callbacks.TensorBoard(log_dir=logdir)


history = model.fit(X_train, y_train, epochs = 100,
                    validation_split = 0.1, shuffle=False, batch_size=250, calllbacks=[tensorboard_callback])

然后使用终端中的这条线访问张力板

tensorboard logdir logs

然后,您可以在localhost:6006访问浏览器上的tensorboard

相关问题 更多 >