问题描述:Tensorflow中提供的R2Score只能接受2维数据(batch, feature),如何对一个三维数据实现R2score的计算?tensorflow传递给模型训练的输入形式什么时候第一个维度是确定的batch值,而不是显示为None?
这是tensorflow中R2Score源码中的一部分,这里判定的模型的输入形状必须是二维且最后一个维度不能为None

本人在搭建LSTM模型时,输入维度为(batch, timestep, feature),想计算在每个timestep维度上的决定系数,以(2, 200, 5)为例,我相对每条长为200的序列计算预测值与实际值的决定系数,然后再特征维度与batch维度累积求和之后再平均,即2*5=10个决定系数的平均。
自定义了一个 R_squared 类,代码如下:
class R_squared(tf.keras.metrics.Metric):
def __init__(self, name='r_squared', **kwargs):
super(R_squared, self).__init__(name=name, **kwargs)
self.total_samples = self.add_weight(name='total_samples', initializer='zeros')
self.total_r_squareds = self.add_weight(name='total_r_squareds', initializer='zeros')
def update_state(self, y_true, y_pred, sample_weight=None):
tot

最低0.47元/天 解锁文章
1135

被折叠的 条评论
为什么被折叠?



