首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >sin的延迟回波-不能复制Tensorflow在Keras中的结果

sin的延迟回波-不能复制Tensorflow在Keras中的结果
EN

Stack Overflow用户
提问于 2017-10-25 08:45:36
回答 1查看 318关注 0票数 3

我正在Keras试验LSTM,几乎没有运气。在某一时刻,我决定缩小到最基本的问题,以便最终取得一些积极的结果。

然而,即使对于最简单的问题,我也发现Keras无法收敛,而在Tensorflow中实现相同的问题则提供了稳定的结果。

我不愿意仅仅切换到Tensorflow,而不理解为什么Keras总是在我尝试的任何问题上出现分歧。

我的问题是延迟回波的多到多序列预测,例如:

蓝线是一个网络输入序列,红色虚线是一个期望输出。

实验是受此存储库的启发,也由此产生了可行的Tensorflow溶液。下面是我的代码的相关摘录,我的最小可复制示例的完整版本是可用的这里

Keras模型:

代码语言:javascript
运行
AI代码解释
复制
model = Sequential()
model.add(LSTM(n_hidden,
               input_shape=(n_steps, n_input),
               return_sequences=True))
model.add(TimeDistributed(Dense(n_input, activation='linear')))
model.compile(loss=custom_loss,
              optimizer=keras.optimizers.Adam(lr=learning_rate),
              metrics=[])

Tensorflow模型:

代码语言:javascript
运行
AI代码解释
复制
x = tf.placeholder(tf.float32, [None, n_steps, n_input])
y = tf.placeholder(tf.float32, [None, n_steps])

weights = {
    'out': tf.Variable(tf.random_normal([n_hidden, n_steps], seed = SEED))
}
biases = {
    'out': tf.Variable(tf.random_normal([n_steps], seed = SEED))
}
lstm = rnn.LSTMCell(n_hidden, forget_bias=1.0)
outputs, states = tf.nn.dynamic_rnn(lstm, inputs=x,
                                    dtype=tf.float32,
                                    time_major=False)

h = tf.transpose(outputs, [1, 0, 2])
pred = tf.nn.bias_add(tf.matmul(h[-1], weights['out']), biases['out'])
individual_losses = tf.reduce_sum(tf.squared_difference(pred, y),
                                  reduction_indices=1)
loss = tf.reduce_mean(individual_losses)
optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate) \
  .minimize(loss)

我声称代码的其他部分(data_generationtraining)是完全相同的。但是,对Keras的学习进展提前停止,并产生了令人不满意的预测。库和示例预测的logloss图附在下面:

Tensorflow训练模型的日志丢失:

Keras培训模型的日志丢失:

从图中读取并不容易,但是Tensorflow到达target_loss=0.15,在大约10k批之后就停止了。但是Keras耗尽了所有13k批到loss的时间,大约只有1.5。在一个单独的实验中,Keras正在运行100 K批,它没有在1.0周围进一步停滞。

下图包括:黑线模型输入信号,绿色虚线地面真实输出,红线获取模型输出.

Tensorflow训练模型的预测:

Keras训练模型的预测:

谢谢您的建议和见解,亲爱的同事们!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-30 10:44:41

好吧,我已经解决了这个问题。Keras实现现在也稳定地收敛到一个合理的解决方案:

实际上,这些模型并不完全相同。您可以格外小心地检查问题中的Tensorflow模型版本,并亲自验证实际的Keras等效值是否列在下面,而不是问题中所述的:

代码语言:javascript
运行
AI代码解释
复制
model = Sequential()
model.add(LSTM(n_hidden,
               input_shape=(n_steps, n_input),
               return_sequences=False))
model.add(Dense(n_steps, input_shape=(n_hidden,), activation='linear'))
model.compile(loss=custom_loss,
              optimizer=keras.optimizers.Adam(lr=learning_rate),
              metrics=[])

我会详细说明的。这里的可行解决方案使用最后一列大小为n_hidden的LSTM作为中间激活,然后提供给Dense层。

所以,在某种程度上,这里的实际预测是由常规感知器做的。

从附加问题的推理示例中可以看出,原始Keras解决方案中的一个额外的注释来源是错误的。我们在那里看到,早期的时间戳完全失败,而后期的时间戳几乎是完美的。这些较早的时间戳对应于当LSTM只是在新窗口上初始化并且不了解上下文时的状态。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46937898

复制
相关文章
理解CheckPoint及其在Tensorflow & Keras & Pytorch中的使用
Checkpointing Tutorial for TensorFlow, Keras, and PyTorch
狼啸风云
2020/02/14
4.9K0
用 TensorFlow hub 在 Keras 中做 ELMo 嵌入
最新发布的Tensorflow hub提供了一个接口,方便使用现有模型进行迁移学习。我们有时用Keras快速构建模型原型,这里只要少许改几个地方就能将Keras与Tensorflow hub提供的模型整合!
AI研习社
2019/05/17
1.5K0
用 TensorFlow hub 在 Keras 中做 ELMo 嵌入
Keras vs tf.keras: 在TensorFlow 2.0中有什么区别?
在本文中,您将发现Keras和tf.keras之间的区别,包括TensorFlow 2.0中的新增功能。
AI算法与图像处理
2019/10/31
2.7K0
tensorflow中keras.models()的使用总结
初学者在调用keras时,不需要纠结于选择tf.keras还是直接import keras,现如今两者没有区别。从具体实现上来讲,Keras是TensorFlow的一个依赖(dependency)。但,从设计上希望用户只透过TensorFlow来使用,即tf.keras。
用户1483438
2022/01/02
6.6K0
Mysql 复制的延迟优化
Mysql 复制过程中,数据延迟是很重要的问题,无法避免,只能尽量优化,使延时尽可能的小 要想优化复制过程,我们先看下复制的整个过程,看其中哪些步骤可以优化 这个过程中有3个主要的时间点 1. 主库写
dys
2018/04/03
9920
Mysql 复制的延迟优化
Postgresql 复制延迟 和 复制"延迟" 与 复制停止大乌龙
Mysql的逻辑复制性能虽然被诟病的比较久了,但是功能多,延迟复制,级联复制,多源复制. 尤其MYSQL的复制的灵活性有种被玩坏了感觉. POSTGRESQL 的复制方式其实也是支持延迟库的,POSTGRESQL 的WAL 的复制方式也是比较灵活的,PITR . 实际上原理就是延迟数据的重放.PostgreSQL使用的是流复制,所以它的设计速度非常快,因为WAL接收者截取了一组日志记录,然后把这些日志记录写到WAL文件中。那么这篇文字要说的一个复制延迟是人为的复制延迟, 另一个是实际上由于某些原因导致的复制延迟.
AustinDatabases
2021/04/01
2.2K0
[MySQL FAQ]系列 — MySQL复制中slave延迟监控
在MySQL复制环境中,我们通常只根据 Seconds_Behind_Master 的值来判断SLAVE的延迟。这么做大部分情况下尚可接受,但并不够准确,而应该考虑更多因素。
老叶茶馆
2022/12/02
7550
如何监控MySQL的复制延迟?
pt-heartbeat 数据库做主从复制时,复制状态、数据延迟是否正常是非常关键的指标,那么如何对其进行监控呢? pt-heartbeat 是 PERCONA 开发的一个工具集中的一个,专门用来监控MySQL和PostgreSQL的复制延迟。 比较成熟,例如Uber等大型公司都在使用。 监控原理 在 master 中建一个 heartbeat 表,其中有一个 时间戳 字段,pt-heartbeat 会周期性的修改时间戳的值。 slave 会复制 heartbeat表,其中就包含了 master执行修改动作
dys
2018/04/04
1.5K0
在tensorflow2.2中使用Keras自定义模型的指标度量
使用Keras和tensorflow2.2可以无缝地为深度神经网络训练添加复杂的指标
deephub
2020/07/07
2.6K0
在tensorflow2.2中使用Keras自定义模型的指标度量
keras TensorFlow_tensorflow 安装
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/10
8100
TensorFlow实战——RNN(LSTM)——预测sin函数
http://blog.csdn.net/u011239443/article/details/73650806
小爷毛毛_卓寿杰
2019/02/13
1.1K0
TensorFlow实战——RNN(LSTM)——预测sin函数
tensorflow学习(keras)
keras是一个可用于快速构建和训练深度学习模型的API。里面的模型的一般的使用流程如下:
opprash
2019/09/20
6070
Keras & Tensorflow 笔记
Keras是一个高层神经网络API,Keras由纯Python编写而成并基于Tensorflow、Theano以及CNTK后端。Keras为支持快速实验而生,能够把你的idea迅速转换为结果,如果你有如下需求,请选择Keras:
列夫托尔斯昊
2020/08/31
6360
SELU︱在keras、tensorflow中使用SELU激活函数
本文介绍了一种用于多模态机器学习的手写识别系统,该系统基于深度学习技术,可以识别多种手写输入格式,包括素描、手写数字和手写字母等。该系统通过卷积神经网络(CNN)和递归神经网络(RNN)的组合,可以在多个数据集上实现高效的识别和分类。
悟乙己
2018/01/02
2.5K0
SELU︱在keras、tensorflow中使用SELU激活函数
[译]标准化Keras:TensorFlow 2.0中的高级API指南
Keras是一个非常受欢迎的构建和训练深度学习模型的高级API。它用于快速原型设计、最前沿的研究以及产品中。虽然现在的TensorFlow已经支持Keras,在2.0中,我们将Keras更紧密地集成到TensorFlow平台。
云水木石
2019/07/02
1.7K0
[译]标准化Keras:TensorFlow 2.0中的高级API指南
复制网页上不能复制的文章的方法是_文章无法复制
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/183762.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/27
8010
【tensorflow2.x】tensorflow和keras的使用问题
1、在新版的tensorflow2.x中,keras已经作为模块集成到tensorflow中了
西西嘛呦
2020/08/26
1.7K0
【tensorflow2.x】tensorflow和keras的使用问题
TensorFlow Serving在Kubernetes中的实践
xidianwangtao@gmail.com 关于TensorFlow Serving 下面是TensorFlow Serving的架构图: 关于TensorFlow Serving的更多基础概
Walton
2018/04/16
3.1K0
TensorFlow Serving在Kubernetes中的实践
点击加载更多

相似问题

结果不能与Keras和TensorFlow在Python中重复。

42

Keras + Tensorflow奇异结果

12

在Keras和Tensorflow中复制多线程设置的模型

14

tensorflow不能将keras模型转换为tensorflow

110

使用tensorflow和keras的不同训练结果

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文