python - 成功训练后 keras predict_generator 抛出错误
问题描述
我正在尝试从头开始在我自己的数据集上实现 yolov3 的 keras 实现。在将代码更改为我的要求并进行了试训之后,我试图通过 keras 中的 predict_generator 函数来验证预测。但是它会引发错误。
model.compile(optimizer=Adam(lr=1e-4), loss={'yolo_loss': lambda y_true, y_pred: y_pred},metrics=['accuracy']) # recompile to apply the change
print('Unfreeze all of the layers.')
batch_size = 2
print('Train on {} samples, val on {} samples, with batch size {}.'.format(num_train, num_val, batch_size))
model.fit_generator(data_generator_wrapper(lines[:num_train], batch_size, input_shape, anchors, num_classes),
steps_per_epoch=max(1, num_train//batch_size),
validation_data=data_generator_wrapper(lines[num_train:], batch_size, input_shape, anchors, num_classes),
validation_steps=max(1, num_val//batch_size),
epochs=1,
initial_epoch=0,
callbacks=[logging, checkpoint, reduce_lr, early_stopping])
predict = model.predict_generator(data_generator_wrapper(lines[:num_train], batch_size, input_shape, anchors, num_classes),verbose=1,steps=10)
model.save_weights(log_dir + 'trained_weights_final.h5')
这是错误
文件“yolo_train.py”,第 83 行,在 _main model.predict_generator(data_generator_wrapper(lines[:num_train], batch_size, input_shape, anchors, num_classes),verbose=1,steps=10) 文件“/usr/local/lib/ python3.6/dist-packages/keras/legacy/interfaces.py”,第 91 行,在包装器中返回 func(*args, **kwargs) 文件“/usr/local/lib/python3.6/dist-packages/keras /engine/training.py”,第 1522 行,在 predict_generator verbose=verbose) 文件“/usr/local/lib/python3.6/dist-packages/keras/engine/training_generator.py”,第 474 行,在 predict_generator 返回 np .concatenate(all_outs[0]) ValueError: 不能连接零维数组
如果有一些形状不匹配,我无法理解训练是如何进行的。另外,我没有修改任何输出张量。仅更改输入图像大小并使类数为 1。
解决方案
推荐阅读
- javascript - 在 HTML 页面中在 5 处显示滚动条,但值字段应读取文件并打印文件内的值
- laravel - Ordering laravel form::select by already selected values
- openshift - OpenShift 4.x and HELM
- go - 两个节点可以直接交换消息吗?
- c# - Create an extension method derived from ToDictionary()
- javascript - Bind Vue to associative array
- javascript - Highligligh particular areas based on X-axis data
- node.js - How to run cron in serverless for every minute?
- c# - 当用户使用 ASP.NET Core Identity 登录网站时,他在访问该网站的所有浏览器中都已登录
- laravel - Laravel 验证仅接受来自 api 的预定义值