InvalidArgumentError: размер 1 должен быть неотрицательным, а не -21 - PullRequest
0 голосов
/ 28 февраля 2020

я делаю следующий код https://www.kaggle.com/super13579/u-net-base-on-resnet34-transfer-learning-keras

def raw_prediction(img, path=test_image_dir):
    c_img = imread(os.path.join(path, c_img_name))
    c_img = np.expand_dims(c_img, 0)/255.0
    cur_seg = fullres_model.predict(c_img)[0]
    return cur_seg, c_img[0]

def smooth(cur_seg):
    return binary_opening(cur_seg>0.99, np.expand_dims(disk(2), -1))

def predict(img, path=test_image_dir):
    cur_seg, c_img = raw_prediction(img, path=path)
    return smooth(cur_seg), c_img

## Get a sample of each group of ship count
samples = valid_df.groupby('ships').apply(lambda x: x.sample(1))
fig, m_axs = plt.subplots(samples.shape[0], 4, figsize = (15, samples.shape[0]*4))
[c_ax.axis('off') for c_ax in m_axs.flatten()]

for (ax1, ax2, ax3, ax4), c_img_name in zip(m_axs, samples.ImageId.values):
    first_seg, first_img = raw_prediction(c_img_name, train_image_dir)
    ax1.imshow(first_img)
    ax1.set_title('Image: ' + c_img_name)
    ax2.imshow(first_seg[:, :, 0], cmap=get_cmap('jet'))
    ax2.set_title('Model Prediction')
    reencoded = masks_as_color(multi_rle_encode(smooth(first_seg)[:, :, 0]))
    ax3.imshow(reencoded)
    ax3.set_title('Prediction Masks')
    ground_truth = masks_as_color(masks.query('ImageId=="{}"'.format(c_img_name))['EncodedPixels'])
    ax4.imshow(ground_truth)
    ax4.set_title('Ground Truth')

fig.savefig('./pic/validation.png')

Тогда я получил следующую ошибку

----------------------------------------- ---------------------------------- InvalidArgumentError Traceback (последний вызов последний) в 18 19 для (ax1, ax2, ax3, ax4), c_img_name в zip (m_axs, samples.ImageId.values): ---> 20 first_seg, first_img = raw_prediction (c_img_name, train_image_dir) 21 ax1.imshow (first_img) 22 ax1.set_title ('Image:' + c_img_name)

в raw_prediction (img, путь) 2 c_img = imread (os.path.join (путь, c_img_name)) 3 c_img = np.expand_dims (c_img, 0) /255.0 ----> 4 cur_seg = fullres_model.predict (c_img) [0] 5 вернуть cur_seg, c_img [0] 6

~ / venv / lib / python3 .7 / site-packages / keras / engine / training.py в предсказать (self, x, batch_size, подробный, шаги, обратные вызовы, max_queue_size, working, use_multiprocessing) 1460
многословный = многословный, 1461
steps = steps, -> 1462 обратных вызовов = обратных вызовов) 1463 1464 def train_on_batch (self, x, y,

~ / venv / lib / python3 .7 / site-packages / keras / engine / training_arrays.py в предикат oop (модель, f, ins, batch_size, подробный, шаги, обратные вызовы) 322 batch_logs = {'batch': batch_index, 'size': len (batch_ids)} 323 callbacks._call_batch_hook («прогноз», «начало», batch_index, batch_logs) -> 324 batch_outs = f (ins_batch) 325 batch_outs = to_list (batch_outs) 326 если batch_index == 0:

~ / venv / lib / python3 .7 / site-packages / tenorflow_core / python / keras / backend.py в вызов (сам, входы) 3738 значение = math_ops.cast (значение, tenor.dtype) 3739 convert_inputs.append (значение) -> 3740 выходов = self._graph_fn (* convert_inputs) 3741 3742 # EagerTensor. numpy () часто создает копию для обеспечения безопасности памяти.

~ / venv / lib / python3 .7 / site-packages / tenorflow_core / python / eager / function.py в вызов (self, * args, ** kwargs) 1079 TypeError: For неверные позиционные / ключевые аргументы. 1080 "" " -> 1081 return self._call_impl (args, kwargs) 1082 1083 def _call_impl (self, args, kwargs, cancellation_manager = Нет): ~ / Venv / Библиотека / python3 0,7 / сайт-пакеты / tensorflow_core / питон / нетерпеливый / function.py в _call_impl (self, args, kwargs, cancellation_manager) 1119 поднять TypeError ("Аргументы ключевого слова {} неизвестны. Ожидается {}.". формат ( 1120 list (kwargs.keys ()), list (self._arg_keywords))) -> 1121 вернуть self._call_flat (args, self.captured_inputs, cancellation_manager) 1122 1123 def _filtered_call (self, args, kwargs):

~ / venv / lib / python3 .7 / site-packages / tenorflow_core / python / eager / function.py в _call_flat (self, args, captured_inputs, cancellation_manager) 1222 если executing_eagerly: 1223 flat_outputs = forward_function.call ( -> 1224 ctx, args, cancellation_manager = cancellation_manager) 1225 еще: 1226 имя_градиента = self._delayed_rewrite_functions.register () ~ / Venv / Библиотека / python3 0,7 / сайт-пакеты / tensorflow_core / питон / нетерпеливый / function.py в вызове (self, ctx, args, cancellation_manager) 509 входов = аргументы, 510 attrs = ("executor_type", executor_type, "config_proto", config), -> 511 ctx = ctx) 512 остальное: 513 выходных данных = execute.execute_with_cancellation (

~ / venv / lib / python3. 7 / сайт-пакеты / tensorflow_core / питон / нетерпеливый / execute.py в quick_execute (op_name, num_outputs, входы, attrs, ctx, name) 65 остальное: 66 сообщение = e.message ---> 67 six.raise_from (core._status_to_exception (e.code, message), Нет) 68 кроме TypeError как e: 69 keras_symbolic_tensors = [

~ / venv / lib / python3 .7 / site-packages / six.py в Повышение_фром (значение, from_value)

InvalidArgumentError: размер 1 должен быть неотрицательным, а не -21 [[{{узел U-resnet34 / bn_data / batchnorm / MUL-1-ReshapeNHWCToNCHW-LayoutOptimizer}}]] [Оп: __ inference_keras_scratch_graph_57257]

Стек вызовов функций: keras_scratch_graph

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