问题标签 [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 投票
0 回答
143 浏览

gpu - 如何将(pytorch)更大的数据集加载到 GPU 并进行小批量训练?

众所周知,批量大小会影响训练的准确性。(更小的批量大小与更高的acc。)。但是使用更小的批量大小也意味着更长的训练时间。假设 GPU 中有更大的内存(例如 Nvidia RTX 2080,GPU 上有 8GB 内存)。有没有办法将更大的数据大小加载到 GPU 中并使用更小的数据集进行训练,以最大限度地减少 CPU 和 GPU 之间的数据访问,同时通过 mini training batch 获得更好的精度?

0 投票
1 回答
82 浏览

python - Keras Sequential 模型中的最大安全批量大小

我正在训练一个没有指定batch_size. 当我查看一个在训练期间保存所有批量大小的列表时,我发现 1200 似乎是最大批量大小。

我的输入数据有 1500 个样本。当我将批次大小指定为 1500 时,keras 仍然将其拆分为 1200 和额外的 300。当我没有指定某些内容时,我得到 37 乘以 32 批次加上大小为 16 (=1200) 的一个,然后是 9 乘以 32 加上一个尺寸为 12 (=300)。保存的批量大小:

在此处输入图像描述

我在这里查看了 keras Sequential 模型文档,但没有找到解释为什么会发生这种情况。

我想也许我的内存对于 1500 个样本来说太小了,但在计算过程中它只使用了大约 60%。这不是对第二个观察的解释。

0 投票
1 回答
411 浏览

java - 如何在 Namedparameterjdbctemplate 上执行 batchUpdate 而不是更新

我正在解析一个文件并创建一个字符串元素列表,这些元素将插入到我的表中。我试图设置一次插入 5 行的批量大小,但不知道如何.batchupdate.update我的代码中使用

0 投票
0 回答
31 浏览

python - 关于 keras 中的 batch_size 和 epochs 的问题

我试图跑model.fit。我有一个目标形状为 5486 行的数据(5486,3)。我注意到在运行时model.fit,它在 4489 个训练样本和 997 个验证样本上打印了 Running 并且它开始于

Epoch 1/32 5/4856 [>.............................] - ETA: 180s - loss: 0.3286 - accuracy: 0.5406............. 某物

第二天我尝试了另一个脚本,并在应用fit它打印的方法时

显示的第一个代码5/4489是`

`

Epoch 1/32 5/151 [>.............................] - ETA: 40s - loss: 0.0286 - accuracy: 0.5406.............

给出上述详细信息的代码是`

`

我注意到数据从 4489 下降到 101。我尝试检查所有内容,但一无所获。有人请解释发生了什么。提前致谢

0 投票
1 回答
762 浏览

python - Keras 似乎忽略了我的 batch_size 并尝试将所有数据放入 GPU 内存中

我有一个带有 2 个输入数组和 2 个输出数组的 RNN,大小为:

创建 RNN LSTM 的代码是(我将只展示两个 RNN 之一,另一个相同,但有 16 个输出并从 input2 获取输入大小):

这里,n_in1就是我之前描述的input1,所以给出的shape是90,15

DenseBND 只是一个返回带有 BatchNormalization 和 dropout 的 Dense 层的函数。在这种情况下,BatchNormalization 为 False,激活函数为 None,Dropout 为 0.2,所以它只返回具有线性激活函数和 20% Dropout 的 Dense 层。

最后,训练它的行:

可以看到validation_split是0.1,batch_size是256

然而,当我尝试训练它时,我收到以下错误:

如您所见,它似乎试图将整个数据集放入 GPU 内存中,而不是逐批进行。我曾经将 batch_size 设置为 1,但此错误仍然存​​在。第一个数字 335376 是我数据集的 90%(这个数字与上面的不同,上面的那个是有效的,这个无效)。

它不应该尝试分配形状为 256、90、27 的张量吗?

0 投票
1 回答
1395 浏览

neural-network - 在 pytorch 中使用 DataLoader 时对批量大小的困惑

我是pytorch的新手。我正在训练 ANN 对 MNIST 数据集进行分类。

train_loader = DataLoader(train_data,batch_size=200,shuffle=True)

我很困惑。数据集包含 60,000 张图像,我将批量大小设置为 6000,我的模型有 30 个 epoch。每个 epoch 会只看到 6000 张图像,还是每个 epoch 会看到 10 批 6000 张图像?

0 投票
0 回答
1234 浏览

python-3.x - 进行推理时Tensorflow 2不同的批量大小

我在 tensorflow 2 中制作了一个自定义模型,它使用了急切的执行。该模型使用继承.fit()函数进行训练,在 10 个 epoch 周期中使用了大约 600k 个训练样本,批量大小为 128(已完成最多 8k 个批量)。训练后模型保存为SavedModel格式。然后通过使用cppflow 库在 C++ 中使用它。但是,此过程要求推理使用与模型训练相同的批量大小,而一次只需要对单个样本进行推理。该应用程序要求速度很快,并且用 127 个虚拟向量填充特征向量数组正在减慢速度。

最后的 NormalizeLayer 中也使用了批大小,它目前使用硬编码的单位值来初始化矩阵。

我已经搜索了一种在 Tensorflow 2 自定义模型中使用可变批量大小的方法,但唯一远程接近的是 TF1 示例;它们已经过时了,无法使用。

我的模型:

0 投票
1 回答
398 浏览

tensorflow - 数据管道中的批量大小和 midel.fit() 中的批量大小有什么区别?

这两个是相同的批量大小,还是具有不同的含义?

第二

我遇到了 Ram 无法运行的问题... 训练图像示例 333000 Ram 30GB 12 GB GPU 批量大小应该是多少?

完整代码在这里

0 投票
0 回答
797 浏览

tensorflow - 如果我的样本量小于批量大小,Keras 会做什么?

对 LSTM 来说相当新,但我已经在寻找解决方案,但找不到任何令人满意甚至足够相似的东西。

所以这是我的问题: 我正在处理睡眠分类,并为大约 6k 名患者添加了注释记录。为了训练我的双向 LSTM,我选择了一名患者并将模型拟合到该数据上,而不是将所有患者的所有数据放入一个大矩阵中,因为我想在 Keras 进行小批量训练时防止患者样本混合。序列长度或samples_size每个患者不一样。然后我循环遍历所有患者,并针对我考虑训练模型的时期数进行额外循环(如开发人员指南中所述)。
因此,由于 LSTM(如果不是有状态的)在每批之后重置它们的单元格和隐藏状态,并且默认batch_size值为tf.keras.Sequential.fit()32,我希望它与sample_size我向网络展示的病人。如果我这样做,我会在一段时间后收到警告和培训过程错误。错误是:

警告:在 0x0000023F9D517708> 处对 .distributed_function 的最后 11 次调用中有 6 次触发了 tf.function 回溯。跟踪是昂贵的,并且过多的跟踪可能是由于传递了 python 对象而不是张量。此外, tf.function 具有 Experimental_relax_shapes=True 选项,可以放宽可以避免不必要的回溯的参数形状。请参阅https://www.tensorflow.org/beta/tutorials/eager/tf_function#python_or_tensor_argshttps://www.tensorflow.org/api_docs/python/tf/function了解更多详情。

所以我查了我最长sample_size的是什么,并相应地设置了我的batch_size


tl;dr:sample_size在我的变量与我的变量不匹配的所有情况下,Keras 都在做什么batch_size=max(len(sample_size))

  1. 它只是向网络显示可用的样本吗?
    • batch_size=sample_size如果是这样:为什么在设置导致训练失败的位置时会出现上述警告?
  2. 或者它是否向网络显示可用样本并用零填充其余样本以匹配给定batch_size
    • 如果是这样:为什么在使用状态模式时需要屏蔽?

编辑: 所以,我尝试了一些额外的解决方法并构建了我自己的数据生成器,它将一名患者的数据证明为一批。然后我开始将steps_per_epoch=len(train_patients)所有患者纳入一个时期。没有关于回溯的警告,我也不明白。
它似乎解决了我在不混合患者数据和变量的情况下每批显示一名患者的问题sample_size,但我真的不明白所有这些可能性及其不同警告之间的区别。

0 投票
0 回答
67 浏览

numpy - 在 pytorch 中使用 vgg 进行迁移学习

我正在使用 vgg16 进行图像分类。我想使用以下代码测试我的转移模型:

我收到以下错误:

我不知道为什么会收到此错误以及如何解决它。如果您能帮助我,我将不胜感激。