【问题标题】:How does batch size affects number of data splitted in folds?批量大小如何影响折叠中拆分的数据数量?
【发布时间】:2020-11-04 02:57:51
【问题描述】:

我正在处理音频分类问题。我正在使用包含 8732 音频的 urbansound8k 数据集。
我知道 kfold 将数据同样分成 k 组。每个组将用于测试,其余的将用于训练。

所以如果 k=4,每个组将包含 2,183 个数据。但是,这个结果与我自己的结果相差甚远

batch_size = 1
num_folds =4
no_epochs = 10

kfold = KFold(n_splits=num_folds, shuffle=False)

for train, test in kfold.split(features, labels):

  
  model = Sequential()
  model.add(Dense(1000, activation='relu'))
  model.add(Dense(no_classes, activation='softmax'))
  



  model.compile(loss=loss_function,
                 optimizer=opt,
                 metrics=['accuracy'])

  history = model.fit(features[train], labels[train],
              batch_size=batch_size,
              epochs=no_epochs,
              verbose=verbosity,
              validation_split=validation_split,shuffle=False)


此代码在 k=4 时具有以下结果:
-5239 使用批量大小 = 1 时每折
-1048 每折叠,批量大小 = 5
- 524 每折叠,批量大小 = 10

我不明白这两个参数之间的关系:批量大小和折叠中的数据数量。

如果需要,我准备分享我的整个代码。

【问题讨论】:

标签: python machine-learning keras deep-learning


【解决方案1】:

好吧,如果您对这种关系感兴趣,它们是,忽略整数舍入,成反比,即

batch_size * number_of_data_in_fold = some_constant

【讨论】:

  • 这种关系如何应用于我的结果? 1 * 5239 = 5239 那么8732在哪里?
  • 如果你在 N 个批量大小等于 B 的项目上运行 model.fit,epoch 将经过 ceil(N/B) 步骤。
  • 非常感谢,我现在明白了。那么 epoch 迭代的次数就是权重会更新多少对吧?
  • 一个时期内的步数告诉你权重更新的频率经常
猜你喜欢
  • 2012-01-30
  • 2022-01-03
  • 2021-02-27
  • 1970-01-01
  • 2019-05-29
  • 1970-01-01
  • 2023-03-22
  • 2019-01-04
  • 2022-12-18
相关资源
最近更新 更多