机器学习模型优化器Adam报错:ValueError: decay is deprecated in the new Keras optimizer

news2024/9/25 11:21:21

文章目录

    • 深度学习模型优化器报错:
      • 报错原因:
    • 解决方案:

深度学习模型优化器报错:

ValueError: decay is deprecated in the new Keras optimizer, pleasecheck the docstring for valid arguments, or use the legacy optimizer, e.g., tf.keras.optimizers.legacy.Adam.

报错原因:

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
Cell In[10], line 15
     13 model = Model(input, output) 
     14 model.summary() # 显示模型的输出
---> 15 opt = Adam(lr=0.0001, beta_1=0.9, beta_2=0.999, decay=0.01) # 设置优化器
     16 model.compile(optimizer=opt, # 优化器
     17               loss = 'binary_crossentropy', # 交叉熵
     18               metrics=['accuracy'])

File D:\anaconda3\lib\site-packages\keras\optimizers\adam.py:104, in Adam.__init__(self, learning_rate, beta_1, beta_2, epsilon, amsgrad, weight_decay, clipnorm, clipvalue, global_clipnorm, use_ema, ema_momentum, ema_overwrite_frequency, jit_compile, name, **kwargs)
     86 def __init__(
     87     self,
     88     learning_rate=0.001,
   (...)
    102     **kwargs
    103 ):
--> 104     super().__init__(
    105         name=name,
    106         weight_decay=weight_decay,
    107         clipnorm=clipnorm,
    108         clipvalue=clipvalue,
    109         global_clipnorm=global_clipnorm,
    110         use_ema=use_ema,
    111         ema_momentum=ema_momentum,
    112         ema_overwrite_frequency=ema_overwrite_frequency,
    113         jit_compile=jit_compile,
    114         **kwargs
    115     )
    116     self._learning_rate = self._build_learning_rate(learning_rate)
    117     self.beta_1 = beta_1

File D:\anaconda3\lib\site-packages\keras\optimizers\optimizer.py:1087, in Optimizer.__init__(self, name, weight_decay, clipnorm, clipvalue, global_clipnorm, use_ema, ema_momentum, ema_overwrite_frequency, jit_compile, **kwargs)
   1072 def __init__(
   1073     self,
   1074     name,
   (...)
   1083     **kwargs,
   1084 ):
   1085     """Create a new Optimizer."""
-> 1087     super().__init__(
   1088         name,
   1089         weight_decay,
   1090         clipnorm,
   1091         clipvalue,
   1092         global_clipnorm,
   1093         use_ema,
   1094         ema_momentum,
   1095         ema_overwrite_frequency,
   1096         jit_compile,
   1097         **kwargs,
   1098     )
   1099     self._distribution_strategy = tf.distribute.get_strategy()

File D:\anaconda3\lib\site-packages\keras\optimizers\optimizer.py:105, in _BaseOptimizer.__init__(self, name, weight_decay, clipnorm, clipvalue, global_clipnorm, use_ema, ema_momentum, ema_overwrite_frequency, jit_compile, **kwargs)
    103 self._variables = []
    104 self._create_iteration_variable()
--> 105 self._process_kwargs(kwargs)

File D:\anaconda3\lib\site-packages\keras\optimizers\optimizer.py:134, in _BaseOptimizer._process_kwargs(self, kwargs)
    132 for k in kwargs:
    133     if k in legacy_kwargs:
--> 134         raise ValueError(
    135             f"{k} is deprecated in the new Keras optimizer, please"
    136             "check the docstring for valid arguments, or use the "
    137             "legacy optimizer, e.g., "
    138             f"tf.keras.optimizers.legacy.{self.__class__.__name__}."
    139         )
    140     else:
    141         raise TypeError(
    142             f"{k} is not a valid argument, kwargs should be empty "
    143             " for `optimizer_experimental.Optimizer`."
    144         )

ValueError: decay is deprecated in the new Keras optimizer, pleasecheck the docstring for valid arguments, or use the legacy optimizer, e.g., tf.keras.optimizers.legacy.Adam.

可以看到错误源于第15行:
opt = Adam(lr=0.0001, beta_1=0.9, beta_2=0.999, decay=0.01) # 设置优化器
该优化器设置方法已失效,需要按报错提示更换legacy.Adam优化器.

解决方案:

1、导入模型方法修改为from tensorflow.keras.optimizers import legacy
2、Adam()优化器调用修改为legacy.Adam(),且其中的学习率参数lr必须要修改为learning_rate

from keras import layers # 导入各种层
from keras.models import Model # 导入模型
from tensorflow.keras.optimizers import legacy # 导入Adam优化器
input = layers.Input(shape=(3197, 1)) # Input
# 通过函数式API构建模型
x = layers.Conv1D(32, kernel_size=10, strides=4)(input)
x = layers.MaxPooling1D(pool_size=4, strides=2)(x)
x = layers.GRU(256, return_sequences=True)(x)
x = layers.Flatten()(x)
x = layers.Dropout(0.5)(x)
x = layers.BatchNormalization()(x)
output = layers.Dense(1, activation='sigmoid')(x) # Output
model = Model(input, output) 
model.summary() # 显示模型的输出
opt = legacy.Adam(learning_rate=0.0001, beta_1=0.9, beta_2=0.999, decay=0.01) # 设置优化器
model.compile(optimizer=opt, # 优化器
              loss = 'binary_crossentropy', # 交叉熵
              metrics=['accuracy']) # 准确率

这样模型就可以继续正常训练了。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/696378.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

5G已难拉动收入增长,运营商对于高投入的5G左右为难

随着三大运营商的5G用户数突破10亿,5G已很难拉动ARPU的增长了,表现出来的业绩就是增长快速放缓,工信部披露的数据显示移动数据业务收入增长已接近于零。 工信部发布了“2023年1-5月份通信业经济运行情况”显示三大运营商的移动数据…

Java(六):Eureka项目搭建、数据请求

Eureka项目搭建、数据请求 Eureka简介Eureka项目创建1、新建Maven项目2、只保留Maven项目的依赖文件3、创建子模块(Eureka服务模块)4、修改pom.xml5、创建并修改配置文件6、添加Eureka注解7、运行8、创建其他服务9、修改pom.xml10、创建并修改配置文件11…

Mac网络扫描工具iNet Network Scanner

iNet Network Scanner是一款适用于 macOS 系统的网络扫描工具,可以帮助用户快速识别和监控局域网中连接的设备和服务。该软件提供了直观的界面和丰富的功能,支持多种网络协议和扫描选项,并具有高度的可定制性和灵活性。 iNet Network Scanner…

javaee 任务调度 定时任务 schedule

任务调度可以实现指定的时间执行某个任务,比如每一分钟执行一次,指定时间执行一次。 MyTimeTask package com.yyy.schedule;import java.text.SimpleDateFormat; import java.util.TimerTask;public class MyTimeTask extends TimerTask {//重写run方法…

Springboot上传图片和回显示图片

本次演示的是直接使用Springboot上传到服务器而不是七牛云等oss,springboot对于前端传输的文件数据类型格式的封装为MultipartFile,前端上传的图片是被存在服务端的缓存区的,当controller处理的时候,缓存区就被清空,所以需要转存,使用transferTo Api 前端采用elementui 直接上传…

开源之夏2023中选结果公示,504名高校生将投入开源项目贡献

中国科学院软件研究所与openEuler社区联合主办的开源之夏活动项目申请阶段告一段落,中选学生名单已公布。前往官网项目列表即可查看项目中选情况https://summer-ospp.ac.cn/org/projectlist开源之夏今年已进行至第四届,成为每年暑期前最受高校开发者关注…

SAP从入门到放弃系列之订单创建-概念-Part1

目录导航 概述订单创建一、通过计划订单创建生产订单1.1、计划订单转为生产订单-part11.2、计划订单转为生产订单-part2操作方式: 二、通过物料或者复制方式创建三、创建无物料的订单四、通过销售订单创建生产订单五、通过项目创建销售订单 概述 根据不同的需求&am…

【深度学习】深入理解Batch Normalization批标准化

机器学习领域有个很重要的假设:独立同分布假设(IID),就是假设训练数据和测试数据是满足相同分布的,这是通过训练数据获得的模型能够在测试集获得好的效果的一个基本保障。那BatchNorm的作用是什么呢?BatchN…

[游戏开发][Unity]出包真机运行花屏(已解决)

花屏真机截屏 原因 原因是启动项目时的第一个场景没有相机是 Skybox或者SolidColor模式,我的启动场景只有一个UI相机,且Clear Flags是DepthOnly 解释: https://blog.csdn.net/yanchezuo/article/details/79002318

【数据库】MySQL主从同步失败或重启后需要重新配置同步,主从同步延迟解决方案,mysql主从同步加速

最近在学习MySQL,主从同步方案。由于是新手,如有出现错误的地方,请大家谅解并留言指正。MySQL不同的版本配置稍有不同,最新版本8.0.27是默认开启binarylog的,见下图 查询MySQL信息 SELECT version,NOW() ;show variabl…

【Zookeeper】win安装随笔

目录 下载地址下载目标解压后目录结构配置文件配置文件详情伪分布式安装LinuxZooKeeper audit is disabled启动解决报错:SLF4J: Class path contains multiple SLF4J bindings. _ 下载地址 https://zookeeper.apache.org/releases.html 下载目标 记住选择带bin的…

《操作系统》by李治军 | 实验8 - 终端设备的控制

目录 一、实验目的 二、实验内容 三、实验准备 1. 键盘输入处理过程 2. 输出字符的控制 四、实验过程 1. 添加 F12 键盘功能处理 2. 添加 * 字符的显示处理 3. 重新编译内核 4. 运行 Linux 0.11 五、实验报告 一、实验目的 1、加深对操作系统设备管理基本原理…

mac docker desktop 无法docker login

mac docker desktop 无法docker login ,报错 Error saving credentials: error storing credentials - err: exit status 1, out: Post "http://ipc/registry/credstore-updated": context deadline exceeded (Client.Timeout exceeded while awaiting h…

pytorch快速入门中文——01

PyTorch 深度学习:60分钟快速入门 原文:https://pytorch.org/tutorials/beginner/deep_learning_60min_blitz.html 作者: Soumith Chintala https://www.youtube.com/embed/u7x8RXwLKcA 什么是 PyTorch? PyTorch 是基于以下两个…

【Hadoop实战】Windows环境下编译Hadoop2(2.10.2-R0)

Windows环境下编译Hadoop2(2.10.2-R0)IDE 前提 根据Hadoop源码包解压之后编译帮助文件BUILDING.txt中关于windows的要求来准备环境 ----------------------------------------------------------------------------------Building on Windows--------…

龙蜥白皮书精选:面向芯片研发和验证的操作系统 SiliconFastOS

文/RISC-V ARCH SIG 01 背景介绍 随着 Arm 和 RISC-V 芯片研发的大爆发,越来越多的芯片设计、制造厂商甚至是云厂商都开始参与到芯片领域中来。面对芯片使用者尤其是处理器芯片与日俱增的需求,且芯片研发研发和流片成本高,芯片制造厂商必…

AIGC时代已经到来,如何满足其日益增长的算力需求

2023年是AI人工智能技术全面爆红的一年。以ChatGPT、GPT-4、文心一言为代表的AIGC大模型,集文本撰写、代码开发、诗词创作等功能于一体,展现出了超强的内容生产能力,带给人们极大震撼。 AIGC是什么? AIGC,AI-Generat…

【鲁棒优化、机会约束】不确定风功率接入下电 - 气互联系统的协同经济调度(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

【kubernetes系列】Kubernetes之pod、lable和annotation

本章节将继续分享关于kubernetes中的一些重要概念。 一、Pod Pod 是 Kubernetes 的最小工作单元。每个 Pod 包含一个或多个容器。Pod 中的容器会作为一个整体被 Master 调度到某个 Node 上运行。(可以把pod想象成豌豆荚,里面的豌豆就是容器,可以有一个…

Go编写免杀木马

先看一下效果 微步云沙箱检测 文件目录,运行main.exe cs上线 这里window denfender一直开启 思路: 分为三个文件: main.gox1.bin(加密后的exe文件)x2.bin(加密后的shellcode文件) 启动ma…