keras中的加权mse自定义损失函数

2023-12-31

我正在处理时间序列数据,输出未来 60 天的预测数据。

我目前使用均方误差作为我的损失函数,结果很糟糕

我想实现一个加权均方误差,使得早期的输出比后来的输出重要得多。

加权均方根公式:

因此,我需要某种方法来使用索引迭代张量的元素(因为我需要同时迭代预测值和真实值,然后将结果写入只有一个元素的张量。它们都是(?,60) 但实际上是 (1,60) 列表。

我所做的一切都不起作用。这是损坏版本的代码

def weighted_mse(y_true,y_pred):
    wmse = K.cast(0.0,'float')

    size = K.shape(y_true)[0]
    for i in range(0,K.eval(size)):
        wmse += 1/(i+1)*K.square((y_true[i]-y_pred)[i])

    wmse /= K.eval(size)
    return wmse

我目前收到此错误,结果是:

InvalidArgumentError (see above for traceback): You must feed a value for placeholder tensor 'dense_2_target' with dtype float
 [[Node: dense_2_target = Placeholder[dtype=DT_FLOAT, shape=[], _device="/job:localhost/replica:0/task:0/cpu:0"]()]]

阅读了对类似帖子的回复后,我认为掩码无法完成任务,并且循环一个张量中的元素也不起作用,因为我无法访问另一个张量中的相应元素。

任何建议,将不胜感激


您可以使用这种方法:

def weighted_mse(yTrue,yPred):

    ones = K.ones_like(yTrue[0,:]) #a simple vector with ones shaped as (60,)
    idx = K.cumsum(ones) #similar to a 'range(1,61)'


    return K.mean((1/idx)*K.square(yTrue-yPred))

指某东西的用途ones_like with cumsum允许您将此损失函数用于任何类型(samples,classes)输出。


提示:始终使用后端功能 https://keras.io/backend/使用张量时。您可以使用切片,但避免迭代。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

keras中的加权mse自定义损失函数 的相关文章

随机推荐

  • BlockingIOError 上的日志记录阻塞:写入无法在没有阻塞的情况下完成

    我最近将我的脚本从 2 x 移植到 3 x 在通过自动化 rundeck 进行生产运行期间 我们发现记录器未处理阻塞 I O 导致的错误 任何如何解决的想法都会很棒 Ubuntu 18 04 1 LTS Python 3 6 7 Loggi
  • 从 Python 文件创建 .deb 文件

    关注后http ubuntuforums org showthread php t 406069 http ubuntuforums org showthread php t 406069我知道如何制作一个 deb 文件 该文件自动将 Py
  • 为什么android在显示png文件时会损失图像质量?

    我想在 android 上显示 png 图像 这是图像文件 右端比左端暗一些 但是 Android 应用程序 使用 ImageView 上的图像质量丢失了 请注意红框中的部分 颜色变化不顺畅 但如果我使用我的Android手机的浏览器 它播
  • 使用 Verilator 和 VPI 读取寄存器数组

    所以我在我的verilog中定义了以下寄存器 reg 31 0 register mem 0 15 verilator public 我的目标是从我的 verilator c 代码中读取存储在其中的 16 个值中的每一个 我发现有关 VPI
  • 为什么 Phoenix (ecto/Postgresx) 在开发中无法连接

    我正在开始我的 Elixir Phoenix 之旅 但我的 postgres 连接遇到了一些问题 当我启动服务器时 我得到 mix phoenix server error Postgrex Protocol PID lt 0 214 0
  • 在JS中将以下日期格式化为YYYY-mm-dd

    我将如何转换以下日期 2016 年 2 月 18 日星期四 12 25 00 SGT 转换成 2016 02 18 这样的格式 I know 通过调用使用 new Date Date parse 可以帮助我得到它 但问题是时区部分 SGT
  • 如何将项目添加到桌面上的右键菜单

    我有一个在后台运行的应用程序 并按设定的时间间隔更改用户的桌面背景 除了正常的 Windows 右键单击 选项之外 我想让用户右键单击桌面背景并可以选择下载照片或前进到下一个背景 在 C 中有什么办法可以做到这一点吗 目标操作系统是 Win
  • 多个 (3+) 设备的 WiFi Direct (Android 4.0)

    像这儿 Android WiFi Direct 自动身份验证 https stackoverflow com questions 9206043 automatic authentication for android wifi direc
  • 如何从 Python 函数调用捕获 stdout 输出?

    我正在使用一个对对象执行某些操作的 Python 库 do something my object 并改变它 这样做时 它会将一些统计信息打印到标准输出 我想掌握这些信息 正确的解决方案是改变do something 返回相关信息 out
  • Angular mat-table dataSource.paginator 和 dataSource.sort 和 dataSource.filter 未按预期工作

    更新 更改了代码以立即调用并分配dataSource 但我仍然遇到相同的结果 除了sourceData paginator工作中 这sourceData filter and sourceData sort仍然不起作用 请注意 我没有收到任
  • ftp 客户端上出现 noClassDefFound 错误:org.apache.commons.net.ftp.FTPClient

    我正在开发一个将文件发送到 url 数据库的应用程序 我一开始只是想发送一张图片 目前 我在 java io 中遇到 noclassDefFound 错误 我已经尝试更新 java 再次删除和添加 jar 文件 并且我仔细检查了我的清单以获
  • “重新启动接收器”无法正常工作 android [Xamarin.Android]

    我正在尝试实现一个广播接收器 该接收器在设备重新启动时获取广播 但无法使用以下代码工作 它应该在设备重新启动时向我发送祝酒词 广播接收器 BroadcastReceiver public class RebootReceiver Broad
  • 删除最后一个空行

    我的 csv 文件末尾有一个分段符 我尝试使用以下命令删除文件末尾的空行 sed i d combined csv 但它不起作用并且空白行仍然存在 我可以使用以下命令删除最后一行 sed i d combined csv 但是在删除最后一行
  • 错误:“x”未命名类型

    当我尝试声明类 Game 的实例时 我收到 main cpp 的编译错误 错误 游戏 未命名类型 如果可能并不重要 但我正在使用代码块 Game cpp中的相关代码 include include main h class Game pri
  • Chrome 扩展程序弹出窗口按条件显示

    我想通过点击显示弹出窗口 但前提是条件为假 单击扩展图标后台 js 后 搜索具有当前名称的选项卡 如果选项卡找到后台js继续工作 如果没有找到 我想显示带有说明的弹出窗口 无法理解如何在这种情况下仅显示弹出窗口 我可以通过 browserA
  • 正则表达式检查字符串中的连续 3 位数字

    我想要java中的正则表达式来检查字符串是否包含连续的3位数字 但问题是我的字符串可能包含 unicode 字符 如果字符串包含 unicode 字符 则应跳过 unicode 字符 跳过 AND 之后的 4 并进行检查 一些例子是 Nee
  • 如何仅使用 JavaScript 获取下一个元素?

    假设我们有这个标记 h1 some project mdash javascript html tests h1 hr p testing 123 p 我知道有 prependChild appendChild innerHTML等属性和方
  • 在 Rails 资源管道中使用字体

    我在 Scss 文件中配置了一些字体 如下所示 font face font family Icomoon src asset url icoMoon eot iefix font format embedded opentype asse
  • ffmpeg 转换 x264 [错误]:大小为 769152 的 malloc 失败

    我正在尝试将从 Android 智能手表 mp4 格式 录制的视频转换为可在所有浏览器上播放的格式 mp4 从智能手表录制的视频未在浏览器中播放 所以 我使用 ffmpeg 将其转换为可播放的 mp4 格式 但有时它会显示错误x264 er
  • keras中的加权mse自定义损失函数

    我正在处理时间序列数据 输出未来 60 天的预测数据 我目前使用均方误差作为我的损失函数 结果很糟糕 我想实现一个加权均方误差 使得早期的输出比后来的输出重要得多 加权均方根公式 因此 我需要某种方法来使用索引迭代张量的元素 因为我需要同时