亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

獲取 IndexError:只有整數、切片 (`:`)、省略號 (`...`)、numpy.

獲取 IndexError:只有整數、切片 (`:`)、省略號 (`...`)、numpy.

泛舟湖上清波郎朗 2023-08-08 16:26:39
我正在嘗試使用自定義生成器在 keras 張量流中實現多輸入模型,如下所示在接受的答案中在 keras 中創建混合數據生成器(圖像,csv) :import randomimport pandas as pdimport numpy as npfrom glob import globfrom keras.preprocessing import image as krs_image# Create the arguments for image preprocessingdata_gen_args = dict(? ? horizontal_flip=True,? ? brightness_range=[0.5, 1.5],? ? shear_range=10,? ? channel_shift_range=50,? ? rescale=1. / 255,)# Create an empty data generatordatagen = ImageDataGenerator()# Read the image list and csvimage_file_list = glob(f'{images_dir}/{split}/**/*.JPG', recursive=True)df = pd.read_csv(f'{csv_dir}/{split}.csv', index_col=csv_data[0])random.shuffle(image_file_list)def custom_generator(images_list, dataframe, batch_size):? ? i = 0? ? while True:? ? ? ? batch = {'images': [], 'csv': [], 'labels': []}? ? ? ? for b in range(batch_size):? ? ? ? ? ? if i == len(images_list):? ? ? ? ? ? ? ? i = 0? ? ? ? ? ? ? ? random.shuffle(images_list)? ? ? ? ? ? # Read image from list and convert to array? ? ? ? ? ? image_path = images_list[i]? ? ? ? ? ? image_name = os.path.basename(image_path).replace('.JPG', '')? ? ? ? ? ? image = krs_image.load_img(image_path, target_size=(img_height, img_width))? ? ? ? ? ? image = datagen.apply_transform(image, data_gen_args)? ? ? ? ? ? image = krs_image.img_to_array(image)? ? ? ? ? ? # Read data from csv using the name of current image? ? ? ? ? ? csv_row = dataframe.loc[image_name, :]? ? ? ? ? ? label = csv_row['class']? ? ? ? ? ? csv_features = csv_row.drop(labels='class')? ? ? ? ? ? batch['images'].append(image)? ? ? ? ? ? batch['csv'].append(csv_features)? ? ? ? ? ? batch['labels'].append(label)? ? ? ? ? ? i += 1? ? ? ? batch['images'] = np.array(batch['images'])? ? ? ? batch['csv'] = np.array(batch['csv'])? ? ? ? # Convert labels to categorical values? ? ? ? batch['labels'] = np.eye(num_classes)[batch['labels']]? ? ? ? yield [batch['images'], batch['csv']], batch['labels']但是,我收到以下索引錯誤。任何幫助是極大的贊賞。
查看完整描述

2 回答

?
慕虎7371278

TA貢獻1802條經驗 獲得超4個贊

我認為你正在試圖逃跑block by block and try to running again previously executed block。另外,這段代碼也沒有問題。將整個代碼放在一個塊中并再次運行(或重新啟動內核并立即運行所有代碼)。如果這樣還沒有解決你的問題,你可以試試我的分享腳本。



查看完整回答
反對 回復 2023-08-08
?
手掌心

TA貢獻1942條經驗 獲得超3個贊

索引錯誤是由于這部分造成的:

batch['labels'] = np.eye(num_classes)[batch['labels']]

np.eye我使用 keras ' ' 代替' to_catgorical' 將標簽轉換為一種熱編碼,并且它有效。


查看完整回答
反對 回復 2023-08-08
  • 2 回答
  • 0 關注
  • 145 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號