我正在尝试使用fast_rcnn进行转学。 当前该模型无法通过tensorflow-hub使用,因此我必须加载旧版模块 从上面给出的地址。 我能够加载模型,检索tensorflow-hub.KerasLayer对象并通过它传递数据。
但是现在我想将此网络调整为仅包含2个类的我自己的数据集,所以我想知道如何修改KerasLayer对象,以便分类层不输出90个类,而只输出2个类?
如果我使用的方法不正确,您对解决我的问题有何建议?
我想避免使用tensorflow对象检测API。 就像文档中提到的那样,旧模型是不可训练的,但是我认为如果添加自己的层不会有问题,对吗?
这是我正在使用的代码
import tensorflow_hub as hub
import numpy as np
import cv2
# Run this once, then provide the local path where the model was downloaded,
# instead of the below http address
model = hub.KerasLayer(
"http://download.tensorflow.org/models/object_detection/faster_rcnn_inception_v2_coco_2018_01_28.tar.gz",
signature="serving_default",
signature_outputs_as_dict=True,
)
image = np.expand_dims(cv2.imread("/your/image.jpg"), 0).astype(np.uint8)
# I would like this to output only 2 different classes in 'outputs["detection_classes"]'
outputs = model(image)