Работа с Deep Multiple instance learning ==> IndexError: слишком много индексов для массива - PullRequest
0 голосов
/ 31 марта 2020

Я пишу, чтобы узнать об ошибке, когда я использую глубокое обучение нескольких экземпляров в моей задаче классификации изображений. но я столкнулся с ошибкой, такой как изображение, но я не знаю, как ее решить. Кто-нибудь, пожалуйста, научите меня, как решить эту проблему? Спасибо!

Размер моего изображения 227 * 227 * 1, и я ссылаюсь на код с веб-сайта.

def generate_batch (путь):

bags = []
for each_path in path:
    name_img = []
    img = []
    img_path = glob.glob(each_path + '/*.png')
    num_ins = len(img_path)

    label = int(each_path.split('/')[-2])

    if label == 1:
        curr_label = np.ones(num_ins,dtype=np.uint8)
    else:
        curr_label = np.zeros(num_ins, dtype=np.uint8)
    for each_img in img_path:
        img_data = np.asarray(sci.imread(each_img), dtype=np.float32)
        #img_data -= 255
        img_data[:, :, 0] -= 123.68
        img_data[:, :, 1] -= 116.779
        img_data[:, :, 2] -= 103.939
        img_data /= 255
        # sci.imshow(img_data)
        img.append(np.expand_dims(img_data,0))
        name_img.append(each_img.split('/')[-1])
    stack_img = np.concatenate(img, axis=0)
    bags.append((stack_img, curr_label, name_img))

return bags

def model_training (input_dim, набор данных, irun, ifold):

train_bags = dataset['train']
test_bags = dataset['test']

# convert bag to batch
train_set = generate_batch(train_bags)
test_set = generate_batch(test_bags)

model = Cell_Net.cell_net(input_dim, args, useMulGpu=False)

# train model
t1 = time.time()
num_batch = len(train_set)
# for epoch in range(args.max_epoch):
model_name = train_eval(model, train_set, irun, ifold)

print("load saved model weights")
model.load_weights(model_name)

test_loss, test_acc = test_eval(model, test_set)

t2 = time.time()
#

print ('run time:', (t2 - t1) / 60.0, 'min')
print ('test_acc={:.3f}'.format(test_acc))

return test_acc

если name == " main ":

args = parse_args()

print ('Called with args:')
print (args)

input_dim = (227,227,1)

run = 1
n_folds = 10
acc = np.zeros((run, n_folds), dtype=float)
data_path = 'C:/Users/user/Desktop/3'

for irun in range(run):
    dataset = load_dataset(dataset_path=data_path, n_folds=n_folds, rand_state=irun)
    for ifold in range(n_folds):
        print ('run=', irun, '  fold=', ifold)
        acc[irun][ifold] = model_training(input_dim, dataset[ifold], irun, ifold) 
print ('mi-net mean accuracy = ', np.mean(acc))
print ('std = ', np.std(acc))

и появляется ошибка:

введите описание изображения здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...