问题标签 [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.
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
参数不受支持。我收到此错误:
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 已满且无法正确并行化有关,但我在网上找不到任何此类评论。
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.
谢谢你的帮助:)
python-3.x - GridSearching LSTM 网络中的问题 - Batch_size 问题
我编写了代码以将 gridsearch 方法应用于使用 keras 构建的 LSTM 网络。一切似乎都很好,但我在传递 batch_size 时遇到了一些问题。
我试图改变 batch_size 的格式,但据我所知,它必须是一个元组。
在我得到的错误下方:
我不明白为什么在错误消息的最后一部分我得到:“batch_size = None”,而我定义了一个元组的批处理大小。
pytorch - 为图像分割实现批处理
我编写了一个 Python 3.5 脚本来进行街道分割。由于我是图像分割的新手,因此我没有使用 pytorch 的预定义数据加载器,而是自己编写它们(以便更好地理解)。到目前为止,我只使用 1 的批量大小。现在我想将其推广到任意批量大小。
这是我的数据加载器的片段:
这是我的批量大小为 1 的训练方法的片段:
如果我执行这个,我当然会得到错误:
我明白为什么,因为现在我有一个图像列表,而不仅仅是像以前一样的输入和标签图像。所以猜想我需要第二个 for 循环来迭代这些批次。所以我尝试了这个:
但对我来说,优化步骤(反向支持)似乎只应用于批次的最后一张图像。真的吗?如果是这样,我该如何解决这个问题?我想如果我缩进 with-Block,那么我会再次获得批量大小 1 的优化。
提前致谢
python - 如何修改 model.fit 设置?
嗨,在我更改数据集之前,我的代码一直运行良好。现在,我收到一个错误:
错误是:
ValueError:检查输入时出错:预期的dense_31_input具有形状(1125,)但得到的数组具有形状(103,)
变量是:
我假设修复它。我需要更改 batch_size 和 epochs 吗?但是应该使用什么数字?
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
python - 在张量流中输入一个带占位符的整数?
我想batch_size
在 Tensorflow 中输入一个整数作为占位符。但它不充当整数。考虑以下示例:
当我打印 的值时,batch
我有以下内容:mask0
mask1
确实我认为mask0
并且mask1
必须是相同的,但似乎 Tensorflow 并没有将batch_size_placeholder
其视为整数。我相信这将是一个张量,但无论如何我可以在我的计算中将它用作整数吗?
无论如何我可以解决这个问题吗?仅供参考,我仅用作示例,我想在训练期间在我的代码中运行训练/验证,在训练和验证步骤中tf.one_hot
,我需要许多具有不同值的其他计算。batch_size
任何帮助,将不胜感激。
tensorflow - 一台设备的批量大小的最佳选择是什么(在 TF 中使用镜像策略)?
问题: 假设您有 4 个 GPU(每个有 2GB 内存)来训练您的深度学习模型。您的数据集中有 1000 个数据点,需要大约 10 GB 的存储空间。一台设备的批量大小的最佳选择是什么(在 TF 中使用镜像策略)?
有人可以帮我解决这个分配问题吗?提前致谢。
postgresql - pyspark dataframe.write() 中的 batchsize 选项不起作用
我正在尝试将数据从 pyspark 写入 postgresql DB。我使用了批处理大小 1000,pyspark 数据框中的总数据为 10000。但是在 postgresql 中进行的插入不是分批的。它正在一个一个地插入数据。以下代码用于写入数据库
请提出一些解决方案。此选项适用于 POSTGRESQL Db 吗?