鱼C论坛

 找回密码
 立即注册
查看: 1235|回复: 3

[已解决]读文件,29行list index out of range

[复制链接]
发表于 2020-8-17 20:59:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 猪猪虾 于 2020-8-17 21:00 编辑
train_path = 'E:/BaiduNetdiskDownload/rootplanning/data_cnn/train_data/train_img/'   #图片路径
train_txt =  'E:/BaiduNetdiskDownload/rootplanning/data_cnn/train_data/train_img_to_label.txt'  #配对好的标签文件
x_train_savepath =  'E:/BaiduNetdiskDownload/rootplanning/data_cnn/train_data/train_img_datasets.npy'  #输入(特征)图像数据集
y_train_savepath =  'E:/BaiduNetdiskDownload/rootplanning/data_cnn/train_data/train_label_datasets.npy'  #生成的标签数据集

test_path = 'E:/BaiduNetdiskDownload/rootplanning/data_cnn/test_data/test_img/'
test_txt =  'E:/BaiduNetdiskDownload/rootplanning/data_cnn/test_data/test_img_to_label.txt'
x_test_savepath = 'E:/BaiduNetdiskDownload/rootplanning/data_cnn/test_data/test_img_datasets.npy'
y_test_savepath = 'E:/BaiduNetdiskDownload/rootplanning/data_cnn/test_data/test_label_datasets.npy'



'''
**********************************************************************************
          目的:该函数返回输入特征(输入小块)和对应的输入标签,及其路径
                一个病人的数据对应n张图片,每张图片又对应n个标签
        11-31,像素范围 3763.557 ~-1551.5474
        1-5,像素范围  3977.636962890625 ~ -1530.5186767578125
*********************************************************************************
'''
def generateds(path,txt,pixel_range):
    f = open(txt,'r')   #只读形式打开文件
    contents = f.readlines()   #读取文件中所有的行
    f.close()
    x,y_ = [],[]   #建立空列表,分别存储输入特征和输入特征对应的实际标签
    for content in contents:
        value = content.split()
        img_path = path  +  value[0]   #图片路径+图片名,获得图片索引路径
        img = Image.open(img_path)   # 读入图片
        img = np.array(img.convert('L'))
        img = img/pixel_range              #归一化数据
        x.append(img)    #存放图像
        y_.append(value[1])  #存放标签数据
        print('loading : ' + content)
    x = np.array(x)
    y_ = np.array(y_)
    y_ = y_.astype(np.int64)
    return x,y_       

        
if os.path.exists(x_train_savepath) and os.path.exists(y_train_savepath) \
    and os.path.exists(x_test_savepath) and os.path.exists(y_test_savepath):
    #判断所需要的文件路劲是否已经存在
    print('**************load datasets********************')
    x_train_save = np.load(x_train_savepath)
    y_train = np.load(y_train_savepath)
    x_test_save = np.load(x_test_savepath)
    y_test = np.load(y_test_savepath)
    x_train = np.reshape(x_train_save,(len(x_train_save),32,32))    
    x_test = np.reshape(x_test_save,(len(x_test_save),32,32))
    
else:
    print('**************Generate datasets********************')
    x_train,y_train = generateds(train_path,train_txt, 3763.6 + 1551.5 )
    x_test,y_test = generateds(test_path,test_txt, 3977.6 + 1530.5 )
    
    
    print('**************save datasets********************')
    x_train_save = np.reshape(x_train,(len(x_train),-1))
    x_test_save = np.reshape(x_test,(len(x_test),-1))
    np.save(x_train_savepath,x_train_save)
    np.save(y_train_savepath,y_train)
    np.save(x_test_savepath,x_test_save)
    np.save(y_test_savepath,y_test)
明明是读文件,一行一行的读,怎么会存在索引超出范围的问题,并没有涉及到下标索引啊
最佳答案
2020-8-17 22:36:13
猪猪虾 发表于 2020-8-17 22:25
list index out of range

给个完整的行不行?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-8-17 22:18:31 | 显示全部楼层
给个报错信息……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-17 22:25:08 | 显示全部楼层

list index out of range
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-17 22:36:13 | 显示全部楼层    本楼为最佳答案   
猪猪虾 发表于 2020-8-17 22:25
list index out of range

给个完整的行不行?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-19 08:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表