问题标签 [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.

0 投票
1 回答
109 浏览

machine-learning - 深度学习中的堆叠与非堆叠架构

stacking在 Keras(或整个深度学习)中,a和架构之间有什么区别,non-stacking任何人都可以简单地说明non-stacking架构吗?

有很多示例和教程展示了如何在 keras 中堆叠图层,但实际上没有关于堆叠的反面是什么。

0 投票
0 回答
486 浏览

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))

0 投票
2 回答
1566 浏览

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,但有人能指出我缺少什么吗?提前致谢

0 投票
1 回答
913 浏览

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 是否在此期间以某种方式延迟加载数据集并对其进行预处理?

0 投票
1 回答
346 浏览

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

错误输出为:

0 投票
2 回答
1725 浏览

python - 如何在转置层之间绑定权重?

我尝试使用以下代码在 tensorflow 2.0 keras 中绑定权重。但它显示了这个错误?有谁知道如何编写捆绑权重密集层?

错误

0 投票
0 回答
67 浏览

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可以轻松构建吗?或者我应该使用低级张量流来构建它?

0 投票
1 回答
363 浏览

python - TensorFlow 简单模型到函数

我有一个 TensorFlow 模型,它在一些简单的线性(y=3x+2)回归数据上进行了训练,当我用 matplotlib 绘制它时,它看起来像一条直线。

我想知道神经网络对这个问题的看法。例如,我的神经网络可能认为解决方案是y=2.99x+2.01. 我怎么能得到这个公式?

原因:我构建了一个神经网络,当它欠拟合一个巨大的数据集时,它会生成一些漂亮的图片。如果可能,我想获得底层代数公式并将其转换为 C 代码。

0 投票
0 回答
508 浏览

python-3.x - 当损失依赖于输入并通过自定义损失层实现时,如何使用 tf estimator API 为 train_op 设置损失?

我正在使用tf.estimatorAPI 实现一个 CNN 模型。

简而言之,成本/损失函数是依赖于输入的,并且包含要在训练期间更新的变量。我实现了一个具有相同映射的自定义层,仅用于调用add_loss()和保存损失的可训练变量。

但是,当我尝试指定train_opEstimatorSpec使用AdamOptimizer)时,我不知道如何检索损失并将其提供给optimizer.minimize().

当我尝试实现Kendall_CVPR2018中提出的 Multi-Max-Gaussian-Likelihood 损失时,我遇到了这个问题。我采用了通用方法作为论文作者在Github上提供的示例代码,它为损失定义了一个自定义层。

不幸的是,上述代码使用Keras,而我正在尝试使用tensorflow,更具体地说,使用tf.estimator. 在 Keras 中,当调用 model.compile() 时,我们可以None作为loss参数输入。但我想我们不能传递None给 tensorflow 中的优化器。

我希望通过tf.estimator在 tensorflow 中使用自定义损失来训练模型。

0 投票
1 回答
3802 浏览

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%。这是巧合还是与激活函数的使用有关。