You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调整图像尺寸时出现IndexError:列表赋值索引超出范围问题求助

解决调整图像尺寸时的IndexError问题

错误原因

你这段代码触发IndexError: list assignment index out of range的核心问题是:x_train_all_new是一个空列表,你试图通过x_train_all_new[i]的索引方式给它赋值,但空列表中不存在第i个位置,自然会报错。另外,代码里的np.array(x_train_all_new)这行完全无效——你没有把转换后的数组赋值给任何变量,x_train_all_new仍然是空列表。

修正方案

下面提供几种可行的修正方式:

方式1:使用列表append方法

遍历原列表,将处理后的图像逐个添加到新列表中:

x_train_all_new = []
for img in x_train_all:
    # 调整尺寸并归一化
    resized_img = tf.image.resize(img, (HEIGHT, WIDTH)) / 255.0
    x_train_all_new.append(resized_img)
# 若需要转为numpy数组,执行这一步
x_train_all_new = np.array(x_train_all_new)

方式2:使用列表推导式(更简洁)

用列表推导式直接生成处理后的列表:

x_train_all_new = [tf.image.resize(img, (HEIGHT, WIDTH)) / 255.0 for img in x_train_all]
# 转为numpy数组(按需执行)
x_train_all_new = np.array(x_train_all_new)

方式3:批量处理(更高效)

如果x_train_all中的元素形状一致,可以先转为numpy数组,再批量调整尺寸,效率更高:

# 将原列表转为numpy数组
x_train_all_np = np.array(x_train_all)
# 批量调整尺寸并归一化
x_train_all_new = tf.image.resize(x_train_all_np, (HEIGHT, WIDTH)) / 255.0
# 转为numpy数组(按需执行)
x_train_all_new = x_train_all_new.numpy()

内容的提问来源于stack exchange,提问作者Nancy Kansal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 05:39:53