问题标签 [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.
keras - Keras 不能做但 Pytorch 可以做的详细例子?
我读了很多文章说 Keras 太高级了,很难用于研究。我发现 Keras 有 Lambda 层和自定义层,那么 Pytorch 可以实现什么而 Keras 不能或非常棘手的一些详细示例是什么?谢谢。
python-3.x - 在 TensorFlow 2.0 中使用 tf.keras.optimizers.apply_gradients 方法时出现 TypeError
当我执行以下代码时,错误消息TypeError: zip argument #2 must support iteration弹出到屏幕上。
经过检查,我发现问题出在这行代码上:
optimizer.apply_gradients(zip(gradients, theta))
我该如何解决这个问题?
python - keras 层中的参数在哪里应用?
我正在努力掌握神经网络的基础知识,并且正在努力理解 keras 层。
从 tensorflow 的教程中获取以下代码:
所以这个网络有3层?第一个只是代表像素值的 28*28 节点。第二个是隐藏层,它从第一个中获取加权和,应用 relu,然后将它们发送到 10 个输出层,这些输出层是 softmaxed?
但是这个模型似乎需要对层进行不同的输入:
为什么输入层现在同时具有 aninput_shape
和 a 值64
?我读到第一个参数指定了第二层中的节点数,但这似乎与第一个示例中的代码不符。另外,为什么输入层有激活?这只是在它们进入网络之前对值进行限制吗?
另外,关于激活函数,为什么 softmax 和 relu 被视为替代品?我认为 relu 应用于单个节点的所有输入,而 softmax 作用于跨层的所有节点的输出?
非常感谢任何帮助!
第一个示例来自:https ://www.tensorflow.org/tutorials/keras/basic_classification
第二个例子来自:https ://www.tensorflow.org/tutorials/keras/basic_regression
python - 如何在自定义 TensorFlow (2.0) Keras 模型中获取批量大小?
我正在继承tf.keras.model
。我需要覆盖compute_output_shape
,否则,我最终会得到 a NotImplementedError
from here。
compute_output_shape
input_shape
作为输入。然而,这并没有多大帮助,因为批量大小在 TensorFlow 的某个地方不知何故丢失了。
None
如果我尝试以与相同的方式返回一个以 开头的形状input_shape
,我会得到TypeError: 'str' object cannot be interpreted as an integer
. 只是省略批量大小也不起作用。
批量大小是可变的,所以我不能硬编码它。
python - 如何在 tf.keras 中创建具有多个输出的回归模型?
我正在尝试训练回归模型来预测音乐的属性,例如 BPM。该模型采用 256x128px png 文件的音频片段的频谱图,并输出几个连续值。到目前为止,我在 tensorflow 网站上根据本指南开发了以下代码:
但是,我相信我的模型结构或我如何预处理训练数据时犯了一个错误,因为我收到关于不正确尺寸的错误,但我正在努力缩小问题的确切位置。我知道我遵循的指南是针对分类问题而不是回归问题,我的“标签”是一个由 2 个值组成的数组,这是导致问题的原因,但我不知道如何解决这个问题。
对于上下文,文件名的格式为xxx-xxx-A-B.png
A 和 B 是模型的两个所需输出值。A 是介于 70 和 180 之间的浮点值,B 是介于 0-1000 之间的整数值。因此label
,每个图像的变量看起来像这样(0.64, 0.319)
:
这是我尝试执行上述脚本时看到的错误:
编辑:我已经在这里将源代码上传到 GitHub 。
python - TensorFlow 的 GPU 利用率问题
我正在尝试使用 TensoFlow 训练一个网络(一个 lrcn,即一个 CNN,后跟 LSTM),如下所示:
我正在按照此链接创建生成器类。它看起来像这样:
这工作正常并且代码运行,但是,我注意到 GPU 使用率保持为 0。当我将 log_device_placement 设置为 true 时,它显示分配给 GPU 的操作。但是当我使用任务管理器或监控 GPU 时nvidia-smi
,我看不到任何活动。
但是当我不使用 DataGenerator 类而只使用 model.fit() 使用如下所示的生成时,我注意到该程序确实使用了 GPU。
所以我猜这不可能是因为我的 NVIDIA 驱动程序安装错误或 TensorFlow 安装不正确,这是我在运行这两个代码时收到的消息,这表明 TF 可以识别我的 GPU ,这让我相信有我的
DataGenerator
班级和/或fit_generator()
谁能帮我指出我做错了什么?
我在带有 GTX 1050Ti 的 Windows 10 机器上使用 TensorFlow 1.10 和 cUDA 9。
python-3.x - 如何正确保存 keras 模型以便能够使用 hub.Module() 加载?
我正在尝试在新图像集上重新训练 inception v3。
当我尝试保存模型时,我收到一个错误。
我努力了:
和
和
都给我一个类似的错误,Module has no ' name '
我附上了与问题相关的代码。
这应该保存一个“.h5”模型文件,但我收到一个命名错误:
我想以 tf_hub 模型的格式保存模型。
python - 如何在 tensorflow 2.0 w/keras 中保存/恢复大型模型?
我有一个使用新的 tensorflow 2.0 和混合 keras 和 tensorflow 制作的大型自定义模型。我想保存它(架构和权重)。重现的确切命令:
我设法保存模型:
但是当我尝试加载它时:
它永远不会结束(没有错误消息)。也许模型太大了?我尝试使用model.to_json()
完整的 API保存为 JSON tf.keras.models.save_model()
,但同样的问题,无法加载它(或者至少太长了)。
在 Windows/Linux 和有/没有 GPU 上存在同样的问题。
保存和恢复适用于完整的 Keras 和简单的模型。
编辑
- 保存权重然后加载它们效果很好,但无法加载模型结构。
- 我放了我用来重现错误的模型,它来自 Pix2Pix 示例(https://www.tensorflow.org/alpha/tutorials/generation/pix2pix)
- 我还在 tensorflow github 上写了一个问题:https ://github.com/tensorflow/tensorflow/issues/28281
python - 我是否正确地进行数据扩充?
有人告诉我,使用数据增强可以帮助我对从文档中提取的手写数字进行更准确的预测(所以它不在我正在使用的 MNIST 数据集中),所以我在我的模型中使用了它。但是,我很好奇我是否做得对,因为在使用数据增强之前训练集的大小是 60000,但是在添加数据增强之后它下降到每个 epoch 3750?我这样做正确吗?
在本教程的数据增强部分之后,我对其进行了调整,使其适用于我如何创建和训练我的模型。我还遗漏了目前我还不太了解的函数中的可选参数。
我正在使用的当前模型来自我从上一个问题中得到的答案之一,因为它比我为了尝试而拼凑起来的第二个模型表现更好。我认为我所做的唯一更改是让它sparse_categorical_crossentropy
代替丢失,因为我正在对数字进行分类,手写字符不能属于两类数字,嗯,对吧?
训练由一个单独的函数完成,这就是我插入数据增强部分的地方:
我希望它会极大地帮助正确识别手写字符,假设它被正确使用。但我什至不确定我是否正确地做到了这一点,从而对模型的准确性做出了很大贡献。
编辑:它确实有助于识别一些提取的字符,但模型仍然没有正确提取大部分提取的字符,这让我怀疑我是否正确实现了它。