TensorFlow中对三维数据使用决定系数R2score

问题描述: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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值