【问题标题】:How do I reorder testing data sets for a neural network in MATLAB?如何在 MATLAB 中重新排序神经网络的测试数据集?
【发布时间】:2017-05-13 15:26:11
【问题描述】:

我在一个文件夹中有 300 张图像,用作验证神经网络的数据集。

每张图片都有一个10 的标签。我将图像转换为 MATLAB 中的矩阵,并将标签转换为 10 的 300x1 向量,该向量对应于矩阵中的每一行图像。

我注意到标签不平衡,这会影响网络。如何重新排序标签,同时为每行图像保持相同的零或一指示?

这是我尝试过的:

我将 1 和 0 分别拆分为一个向量,现在我希望能够在 12 行中连续放置至少两个 1 和 10 个零,但我不知道如何操作。我用它来分割一和零:

ones = labels(labels(:,1)==1,:)
zeros = labels(labels(:,1)==0,:)

如何重新排列标签以消除标签不平衡的问题?

【问题讨论】:

    标签: arrays matlab sorting vector neural-network


    【解决方案1】:

    这将创建一个索引向量,该向量应均匀分布您的两组标签,以便它们在每个连续的 12 个标签组中大致平衡(请注意,这假设您的数据均匀划分为 12 个组,它在您的示例):

    index = [find(labels(:, 1) == 1); find(labels(:, 1) == 0)];
    index = reshape(reshape(index, [25 12]).', [], 1);
    

    然后,您将使用此索引对标签数组的行和任何相关数据(如图像数据数组)重新排序:

    labels = labels(index, :);
    otherData = otherData(index, :);
    

    【讨论】:

      猜你喜欢
      • 2012-09-19
      • 1970-01-01
      • 1970-01-01
      • 2014-02-24
      • 2016-12-06
      • 1970-01-01
      • 2018-09-19
      • 2012-05-15
      • 1970-01-01
      相关资源
      最近更新 更多