问题标签 [batchsize]

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 回答
239 浏览

tensorflow - steps_per_epoch 在 tf.keras.fit 中不被尊重

tf.keras.fit不遵守批量大小,不断获得 OOM 以在 GPU 内存中分配整个张量。

我正在尝试为 mnist 数据集拟合 DNN 模型:

我预计批量大小为 600000 / 100 = 6000,但是,Keras 不断分配形状为 [60000,35,28,28] 的张量。该steps_per_epoch参数不受支持。我收到此错误:

0 投票
2 回答
1293 浏览

tensorflow - 为什么大型迷你批次需要更长的时间来运行?

我正在 MNIST 上训练自动编码器,并注意到在 128 之后增加批量大小,开始在固定数据集大小上花费更多计算时间。

我正在使用 tensorflow-gpu 并拥有 GeForce GTX 1070。

我尝试在 5000 个样本(784 暗淡)的固定训练集上运行几个测试,并运行了 10 个 epoch。批次是batch-size来自 5000 个训练样本的连续块,因此有效的迭代次数取决于批次大小。

我跟踪了这​​些数据的性能(丢失)、执行时间和 python 进程的 GPU 内存使用情况(来自 nvidia-smi 输出):

当我尝试大于 512 的 minibatch 大小时,我得到 Out Of Memory 错误。

我想较小的批次需要更长的时间来执行是有道理的,因为同一日期会有更多的更新。但是,我不确定为什么当 minibatch 大于 128 个样本时计算时间会增加,而不是进一步减少。

一个假设是它与 GPU 已满且无法正确并行化有关,但我在网上找不到任何此类评论。

0 投票
1 回答
448 浏览

python - 如何在 keras 中使用 batch_size 时识别张量的形状(initial_value 必须具有指定的形状)

我有一个custom layer,在这个客户层的一行我喜欢这样:

当我运行代码时,我收到了这个错误:

ValueError:initial_value 必须具有指定的形状:Tensor("lambda_1/zeros_2:0", shape=(?, 20), dtype=float32)

我搜索并发现我可以使用validate_shape=False

所以我将代码更改为:

然后它会引发此错误:

ValueError:输入 0 与层中继器不兼容:预期 ndim=2,发现 ndim=None

更新1

当我尝试这个时:

它再次引发错误:

initial_value 必须具有指定的形状:Tensor("lambda_1/zeros_like:0", shape=(?, 20), dtype=float32)

另外,当我这样明确地给出它时:

它引发了这个错误:

ValueError:一个操作有None梯度。请确保您的所有操作都定义了渐变(即可微分)。没有梯度的常见操作:K.argmax、K.round、K.eval。

以防万一模型可以帮助确定此错误的来源:

这是 lambda 层,只需稍微改变一下矩阵:

实际上当我打印出它的形状时out打印出来<unknown>

任何想法或技巧如何解决这个问题?

我在用tensorflow 1.13.

谢谢你的帮助:)

0 投票
1 回答
389 浏览

python-3.x - GridSearching LSTM 网络中的问题 - Batch_size 问题

我编写了代码以将 gridsearch 方法应用于使用 keras 构建的 LSTM 网络。一切似乎都很好,但我在传递 batch_size 时遇到了一些问题。

我试图改变 batch_size 的格式,但据我所知,它必须是一个元组。




在我得到的错误下方:


我不明白为什么在错误消息的最后一部分我得到:“batch_size = None”,而我定义了一个元组的批处理大小。

0 投票
1 回答
333 浏览

pytorch - 为图像分割实现批处理

我编写了一个 Python 3.5 脚本来进行街道分割。由于我是图像分割的新手,因此我没有使用 pytorch 的预定义数据加载器,而是自己编写它们(以便更好地理解)。到目前为止,我只使用 1 的批量大小。现在我想将其推广到任意批量大小。

这是我的数据加载器的片段:

这是我的批量大小为 1 的训练方法的片段:

如果我执行这个,我当然会得到错误:

我明白为什么,因为现在我有一个图像列表,而不仅仅是像以前一样的输入和标签图像。所以猜想我需要第二个 for 循环来迭代这些批次。所以我尝试了这个:

但对我来说,优化步骤(反向支持)似乎只应用于批次的最后一张图像。真的吗?如果是这样,我该如何解决这个问题?我想如果我缩进 with-Block,那么我会再次获得批量大小 1 的优化。

提前致谢

0 投票
1 回答
145 浏览

python - 如何修改 model.fit 设置?

嗨,在我更改数据集之前,我的代码一直运行良好。现在,我收到一个错误:

错误是:

ValueError:检查输入时出错:预期的dense_31_input具有形状(1125,)但得到的数组具有形状(103,)

变量是:

在此处输入图像描述

我假设修复它。我需要更改 batch_size 和 epochs 吗?但是应该使用什么数字?

0 投票
1 回答
2175 浏览

keras - keras compute_output_shape 不适用于自定义层

我自定义了一个层,将batch_size和第一个维度合并,其他维度保持不变,但是compute_output_shape好像没有效果,导致后续层无法获取准确的形状信息,导致报错。如何使 compute_output_shape 工作?

我需要得到 (None,4,5) 但得到 (None,None),为什么 compute_output_shape 不起作用。我的 keras 版本是 2.2.4

0 投票
1 回答
258 浏览

python - 在张量流中输入一个带占位符的整数?

我想batch_size在 Tensorflow 中输入一个整数作为占位符。但它不充当整数。考虑以下示例:

当我打印 的值时,batch我有以下内容:mask0mask1

确实我认为mask0并且mask1必须是相同的,但似乎 Tensorflow 并没有将batch_size_placeholder其视为整数。我相信这将是一个张量,但无论如何我可以在我的计算中将它用作整数吗?

无论如何我可以解决这个问题吗?仅供参考,我仅用作示例,我想在训练期间在我的代码中运行训练/验证,在训练和验证步骤中tf.one_hot,我需要许多具有不同值的其他计算。batch_size

任何帮助,将不胜感激。

0 投票
1 回答
455 浏览

tensorflow - 一台设备的批量大小的最佳选择是什么(在 TF 中使用镜像策略)?

问题: 假设您有 4 个 GPU(每个有 2GB 内存)来训练您的深度学习模型。您的数据集中有 1000 个数据点,需要大约 10 GB 的存储空间。一台设备的批量大小的最佳选择是什么(在 TF 中使用镜像策略)?

有人可以帮我解决这个分配问题吗?提前致谢。

0 投票
1 回答
1925 浏览

postgresql - pyspark dataframe.write() 中的 batchsize 选项不起作用

我正在尝试将数据从 pyspark 写入 postgresql DB。我使用了批处理大小 1000,pyspark 数据框中的总数据为 10000。但是在 postgresql 中进行的插入不是分批的。它正在一个一个地插入数据。以下代码用于写入数据库

请提出一些解决方案。此选项适用于 POSTGRESQL Db 吗?