问题标签 [tf.keras]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
machine-learning - 深度学习中的堆叠与非堆叠架构
stacking
在 Keras(或整个深度学习)中,a和架构之间有什么区别,non-stacking
任何人都可以简单地说明non-stacking
架构吗?
有很多示例和教程展示了如何在 keras 中堆叠图层,但实际上没有关于堆叠的反面是什么。
python - 如何将 tf.keras Sequential 与 tf.distribute.ParameterServerStrategy 和 tf.train.MonitoredSession 一起使用?
我正在尝试为以下内容设置一个非常简单的最小工作示例:使用带有 tf.distribute.ParameterServerStrategy 的 tf.Server 在 tf.train.MonitoredSession 中使用 tf.keras 构建的模型。
我的最终目标是在分布式环境中使用 tf.keras 模型,使用两个工作人员,每个工作人员都有一个 GPU 和一个参数服务器。
该模型是根据此处找到的示例和文档构建的:https ://www.tensorflow.org/versions/r1.12/api_docs/python/tf/keras/models/Sequential
根据此处找到的文档使用参数服务器策略:https ://www.tensorflow.org/versions/r1.12/api_docs/python/tf/contrib/distribute/ParameterServerStrategy
包括设备放置和 MonitoredSession 使用在内的整体设置取自:https ://github.com/tensorflow/examples/blob/master/community/en/docs/deploy/distributed.md
我已经在使用“allow_soft_placement”选项,并且在只有一个 CPU 的本地计算机上“模拟”分布式设置,因为在实际分布式设置中存在不同的问题,我试图通过使用自动处理变量初始化的 MonitoredSession。
此代码适用于“正常”(未监控)tf.Session 和变量初始化 - 全局、局部、模型变量和表等。
解冻图形的线对于能够在 tf.keras.Model 的 fit 函数中使用 tf.data.Dataset 是必要的,因为必须创建一个迭代器 - 这会导致冻结图形中的错误。
这是我试图运行的代码。我使用 tensorflow 1.12.0 和 python 3.6.7。我也尝试过 python 2.7,结果相同。
除了安装 tensorflow 之外,该代码不需要任何设置。
该代码不需要大量设置,因为数据集是从 Web 加载并转换为 tf.data.Dataset 的,因为这是我想用真实数据组织管道的方式。MNIST 数据设置示例取自 https://www.kaggle.com/margaretmz/mnist-with-tf-keras。
我希望代码不会因为错误的变量或操作放置而失败,因为我基本上将所有这些决定留给了 tensorflow 的实现,方法是使用strategy.scope()
和tf.device(tf.train.replica_device_setter(worker_device="/job:worker/task:%d" % task,cluster=cluster))
tensorflow - 如何使用 Tensorflow2.0 alpha 堆叠卷积层和 LSTM?
我正在尝试为 NLP 任务实现一个神经网络,其中包含一个卷积层,后跟一个 LSTM 层。我目前正在尝试使用新的 Tensorflow 2.0 来做到这一点。但是,在构建模型时,我遇到了一个我无法理解的错误。
该模型
错误
起初,我试图检查是否存在关于使用层实现Conv1D
层的任何问题LSTM
。我找到了这篇文章,建议我重新塑造卷积层和 lstm 层之间的层。但这仍然不起作用,我得到了一个不同的错误。这篇文章看起来很相似,但它没有使用 Tensorflow 2.0 并且到目前为止没有回答。我还发现这篇文章具有堆叠卷积层和 lstm 层的相同意图。但它使用Conv2D
而不是Conv1D
. 这篇文章还建议使用内置层重塑卷积层的输出,称为Reshape
. 然而,我仍然遇到同样的错误。
我还尝试input_shape
在 LSTM 层中指定 。
最后我仍然遇到同样的错误。
我不确定我是否了解如何堆叠一维卷积层和 lstm 层。我知道 TF2.0 仍然是 Alpha,但有人能指出我缺少什么吗?提前致谢
python-3.x - 为什么 tf.keras model.fit() 初始化需要这么长时间?如何优化?
使用 tensorflow.keras(支持 GPU 的 2.0-alpha0)我在新编译的模型和以前保存和重新加载的模型上使用 tf.keras.model.fit() 的初始化时间都非常长。
我相信这是在 tf.data.Datasets() 已经加载和预处理之后,所以我不明白什么需要这么长时间并且 TF/Keras 没有输出:
3 分钟加载模型并填充 shuffle 缓冲区和 6 分钟......什么?而这个神秘的作品又该如何优化呢?(5ghz 8700K,32 GB RAM,NVME SSD,1080ti 11G DDR5 - 任务管理器显示 100% 单线程 CPU 使用率,中等磁盘访问,缓慢扩展 RAM 使用率至最大 ~28GB,此期间 GPU 使用率为零)。
有没有办法以更有效的方式序列化或存储模型,以便它们可以定期启动和停止而无需 10 分钟的开销?
TF/Keras 是否在此期间以某种方式延迟加载数据集并对其进行预处理?
python-3.x - TF 2.0 - 方法 estimator.model_to_estimator( ) 失败但 model.fit 适用于 tf.keras 创建的模型
在使用 TF 2.0 Alpha 并将工作的 TF Keras 模型转换为 TF 估计器时,我遇到了一个奇怪的错误。
下面的代码取自没有 PHD 系列的 Tensorflow - RNN 时间序列预测,没有任何修改。
当我在 model_fn_keras() 的结果上运行 model.fit() 时,它运行得非常好,但是在将其转换为 TF 估计器时它失败了。
这也在 Tensorflow 问题板上提出,但他们似乎并不认为这是一个错误 - https://github.com/tensorflow/tensorflow/issues/27750
错误输出为:
python - 如何在转置层之间绑定权重?
我尝试使用以下代码在 tensorflow 2.0 keras 中绑定权重。但它显示了这个错误?有谁知道如何编写捆绑权重密集层?
错误
tensorflow - 如何通过 tf.keras.layers.LSTM 在文本序列中编码跨度
我是tf.keras
功能 API 的新手。我现在正在构建一个模型,该模型通过 LSTM 层对句子序列中的某些单词跨度进行编码。例如,输入是: [None, max_sent_len, word_embedding_dim]
, span:[2, 5]
应该将单词 ofindex[2,3,4]
传入一个 LSTM 层并输出最后一个隐藏层。有什么功能tf.keras
可以轻松构建吗?或者我应该使用低级张量流来构建它?
python - TensorFlow 简单模型到函数
我有一个 TensorFlow 模型,它在一些简单的线性(y=3x+2)回归数据上进行了训练,当我用 matplotlib 绘制它时,它看起来像一条直线。
我想知道神经网络对这个问题的看法。例如,我的神经网络可能认为解决方案是y=2.99x+2.01
. 我怎么能得到这个公式?
原因:我构建了一个神经网络,当它欠拟合一个巨大的数据集时,它会生成一些漂亮的图片。如果可能,我想获得底层代数公式并将其转换为 C 代码。
python-3.x - 当损失依赖于输入并通过自定义损失层实现时,如何使用 tf estimator API 为 train_op 设置损失?
我正在使用tf.estimator
API 实现一个 CNN 模型。
简而言之,成本/损失函数是依赖于输入的,并且包含要在训练期间更新的变量。我实现了一个具有相同映射的自定义层,仅用于调用add_loss()
和保存损失的可训练变量。
但是,当我尝试指定train_op
(EstimatorSpec
使用AdamOptimizer
)时,我不知道如何检索损失并将其提供给optimizer.minimize()
.
当我尝试实现Kendall_CVPR2018中提出的 Multi-Max-Gaussian-Likelihood 损失时,我遇到了这个问题。我采用了通用方法作为论文作者在Github上提供的示例代码,它为损失定义了一个自定义层。
不幸的是,上述代码使用Keras
,而我正在尝试使用tensorflow
,更具体地说,使用tf.estimator
. 在 Keras 中,当调用 model.compile() 时,我们可以None
作为loss
参数输入。但我想我们不能传递None
给 tensorflow 中的优化器。
我希望通过tf.estimator
在 tensorflow 中使用自定义损失来训练模型。
tensorflow - TensorFlow 如何计算模型的准确率?
我正在关注本教程进行二元类分类。在定义模型时,它定义如下并引用:
应用 tf.keras.layers.Dense 层将这些特征转换为每个图像的单个预测。您在这里不需要激活函数,因为此预测将被视为 logit 或原始预测值。正数预测第 1 类,负数预测第 0 类。
然后将其编译为
我在这里看到了类似的模型定义,如下所示:
在上述没有使用激活函数的情况下,我观察到预测值采用任何实际值(不在 [0,1] 范围内),而不是例如单个负值。
问题:1
tensorflow 如何根据这些值计算准确率?因为这些值不是 0 或 1,所以它使用什么阈值来确定样本是 1 类还是 0 类?
在另一个教程中,我看到了最后一层使用 sigmoid 或 softmax 激活函数。
同样,我将我的模型定义如下:
观察值在 [0,1] 范围内
问题2
在这种情况下,tensorflow 计算的准确度如何?
问题:3
在最后一层使用 sigmoid 激活和不使用它有什么区别?当我使用 sigmoid 激活函数时,模型的准确率比不使用 sigmoid 函数时降低了 10%。这是巧合还是与激活函数的使用有关。