python 给出数组是一维的,但索引了两个维度错误

我已经为 miniBatchGradientDescent 编写了 mini_batch 创建器

代码如下:

# 函数用于创建包含 mini-batches 的列表
def create_mini_batches(X,y, batch_size):
    print(X.shape, y.shape) # 输出 (280, 34) (280,)
    splitData=[]
    splitDataResults=[]
    batchCount=X.shape[0] // batch_size # 使用地板除法获取整数形式的索引
    for i in range(batchCount):
        splitData.append(X[(i) * batch_size : (i+1) * batch_size, :])
        splitDataResults.append(y[(i) * batch_size : (i+1) * batch_size, :]) # 产生错误
    splitData=np.asarray(splitData)
    splitDataResults=np.asarray(splitDataResults)
    return splitData, splitDataResults, batchCount

错误提示如下:

splitDataResults.append(y[(i) * batch_size : (i+1) * batch_size, :])
IndexError: too many indices for array: array is 1-dimensional, but 2 were indexed

我确定形状是正确的,但它还是给我报错了。哪里出了问题?


回答:

尝试重塑 y:

print(X.shape, y.shape) # 输出 (280, 34) (280,)
y = y.reshape(-1, 1)

这应该能解决你的问题,因为 y 将变成二维的

Related Posts

多维度Top-k评分

例如,在机器学习中的自然语言处理中,通常使用波束搜索来…

R – Caret train() “错误:停止” 与 “在newdata中未找到对象中使用的所有变量名”

我正在尝试为蘑菇数据构建一个简单的朴素贝叶斯分类器。我…

创建训练和测试数据集分割,数据嵌套在多个文件夹中

我正在准备数据以训练一个图像识别模型。目前我有一个文件…

我的神经网络预测出现错误:IndexError: list index out of range

我正在进行一个简单的垃圾邮件/非垃圾邮件文本分类。我的…

TensorFlow自定义训练步骤使用不同的损失函数

背景 根据TensorFlow文档,可以使用以下方式执…

为什么 `np.mean(x.flatten()==y)` 的结果与 `np.mean(x==y)` 的结果不同?

当我在做机器学习实验并计算准确率时,我发现了一些奇怪的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注