【问题标题】:Linear Regression Mini-batch Gradient Descent in python: split training and validation data by batch sizepython中的线性回归小批量梯度下降:按批量大小拆分训练和验证数据
【发布时间】:2021-02-27 04:06:31
【问题描述】:

我试图按批量大小拆分训练和验证数据,并找到验证 rmse。训练特征数据的大小为 11000。验证特征数据的大小为 2750。但是,当我在 for 循环中使用 zip 函数时。它将 for 循环限制在较小的范围内,即 2750。

有人知道我该如何解决这个问题吗?我已经卡了两天了。

  for epoch in range (0, maximum_iterations, 1):
      for i, j in zip(range(0, training_feature_data.shape[0], batch_size), range(0, validation_feature_data.shape[0], batch_size)):
         training_feature_data_i = training_feature_data[i:i+batch_size]
         training_target_data_i = training_target_data[i:i+batch_size]
         validation_feature_data_j = validation_feature_data[j:j+batch_size]
         validation_target_data_j = validation_target_data[j:j+batch_size]

【问题讨论】:

  • 您可以将第二个 for 循环拆分为两个循环,一个用于训练数据,一个用于验证数据
  • @ThomasSchillaci 非常感谢!

标签: python linear-regression mini-batch batchsize


【解决方案1】:

由于训练和验证在这里没有任何关系(索引 i 似乎不影响验证,而 j 不影响训练),单独生成小批量更有意义。这就是 Thomas Schillaci 在他的评论中所说的。这里有一个关于如何重新格式化代码的建议。

for epoch in range (0, maximum_iterations, 1):
  for i in range(0, training_feature_data.shape[0], batch_size):
     training_feature_data_i = training_feature_data[i:i+batch_size]
     training_target_data_i = training_target_data[i:i+batch_size]
  for j in range(0, validation_feature_data.shape[0], batch_size):
     validation_feature_data_j = validation_feature_data[j:j+batch_size]
     validation_target_data_j = validation_target_data[j:j+batch_size]

【讨论】:

    猜你喜欢
    • 2016-06-15
    • 2020-11-18
    • 1970-01-01
    • 2017-11-27
    • 2015-07-15
    • 2021-01-23
    • 1970-01-01
    • 2014-09-01
    • 2015-11-23
    相关资源
    最近更新 更多