Возможно, мы что-то упускаем из виду, но моя команда в настоящее время пытается обучать и делать прогнозы, используя реализацию RetinaNet TPU на GCP . Однако мы застряли, пытаясь просто делать прогнозы на немаркированных изображениях, поскольку мы не знаем, как интерпретировать выходные формы.
Мы обучили модель в облаке, чтобы получить экспортированные saved_model.pb
и переменные, убедившись, что мы подстроили размер наших данных и количество классов. Затем, присмотревшись к saved_model.pb
, мы можем увидеть выходные формы примерно так:
model_dir = <PATH_TO_SAVED_MODEL>
with tf.Session() as sess:
graph = tf.Graph()
with graph.as_default():
metagraph = tf.saved_model.loader.load(sess, [tag_constants.SERVING],model_dir)
outputs_mapping = dict(metagraph.signature_def['serving_default'].outputs)
print (outputs_mapping)
Используя 9 классов наших данных, мы получаем следующие выходные данные и формы:
{'cls_outputs_3': name: "retinanet/class_net/class-predict/BiasAdd:0"
dtype: DT_FLOAT
tensor_shape {
dim {
size: -1
}
dim {
size: 80
}
dim {
size: 80
}
dim {
size: 81
}
}
, 'cls_outputs_4': name: "retinanet/class_net/class-predict_1/BiasAdd:0"
dtype: DT_FLOAT
tensor_shape {
dim {
size: -1
}
dim {
size: 40
}
dim {
size: 40
}
dim {
size: 81
}
}
, 'cls_outputs_5': name: "retinanet/class_net/class-predict_2/BiasAdd:0"
dtype: DT_FLOAT
tensor_shape {
dim {
size: -1
}
dim {
size: 20
}
dim {
size: 20
}
dim {
size: 81
}
}
, 'box_outputs_3': name: "retinanet/box_net/box-predict/BiasAdd:0"
dtype: DT_FLOAT
tensor_shape {
dim {
size: -1
}
dim {
size: 80
}
dim {
size: 80
}
dim {
size: 36
}
}
, 'cls_outputs_6': name: "retinanet/class_net/class-predict_3/BiasAdd:0"
dtype: DT_FLOAT
tensor_shape {
dim {
size: -1
}
dim {
size: 10
}
dim {
size: 10
}
dim {
size: 81
}
}
, 'box_outputs_4': name: "retinanet/box_net/box-predict_1/BiasAdd:0"
dtype: DT_FLOAT
tensor_shape {
dim {
size: -1
}
dim {
size: 40
}
dim {
size: 40
}
dim {
size: 36
}
}
, 'cls_outputs_7': name: "retinanet/class_net/class-predict_4/BiasAdd:0"
dtype: DT_FLOAT
tensor_shape {
dim {
size: -1
}
dim {
size: 5
}
dim {
size: 5
}
dim {
size: 81
}
}
, 'box_outputs_5': name: "retinanet/box_net/box-predict_2/BiasAdd:0"
dtype: DT_FLOAT
tensor_shape {
dim {
size: -1
}
dim {
size: 20
}
dim {
size: 20
}
dim {
size: 36
}
}
, 'box_outputs_6': name: "retinanet/box_net/box-predict_3/BiasAdd:0"
dtype: DT_FLOAT
tensor_shape {
dim {
size: -1
}
dim {
size: 10
}
dim {
size: 10
}
dim {
size: 36
}
}
, 'box_outputs_7': name: "retinanet/box_net/box-predict_4/BiasAdd:0"
dtype: DT_FLOAT
tensor_shape {
dim {
size: -1
}
dim {
size: 5
}
dim {
size: 5
}
dim {
size: 36
}
}
, 'cls_outputs_all': name: "map_1/TensorArrayStack_2/TensorArrayGatherV3:0"
dtype: DT_FLOAT
tensor_shape {
dim {
size: -1
}
dim {
size: 5000
}
}
, 'indices_all': name: "map_1/TensorArrayStack/TensorArrayGatherV3:0"
dtype: DT_INT32
tensor_shape {
dim {
size: -1
}
dim {
size: 5000
}
}
, 'image': name: "Reshape:0"
dtype: DT_FLOAT
tensor_shape {
dim {
size: -1
}
dim {
size: 640
}
dim {
size: 640
}
dim {
size: 3
}
}
, 'box_outputs_all': name: "map_1/TensorArrayStack_3/TensorArrayGatherV3:0"
dtype: DT_FLOAT
tensor_shape {
dim {
size: -1
}
dim {
size: 5000
}
dim {
size: 4
}
}
, 'classes_all': name: "map_1/TensorArrayStack_1/TensorArrayGatherV3:0"
dtype: DT_INT32
tensor_shape {
dim {
size: -1
}
dim {
size: 5000
}
}
}
Мы можем запускать изображения через модель, чтобы успешно получать выходные данные, но тогда мы не знаем, что делать с выходными данными. Кажется, что ни одна из форм не полностью соответствует нашим данным. Прогнозирование с использованием метод развертывания GCP также не работает для нас. Он не говорит нам, что что-то пошло не так, но он просто сидит и ничего не делает.
Мы также прочитали бумагу с очаговыми потерями , пытаясь понять формы. Хотя это дало нам некоторое понимание, на самом деле интерпретация и работа с весами все еще уклоняются от нас. Все мы - студенты, у которых есть некоторый опыт работы с машинным обучением и нейронными сетями, но у нас нет опыта работы с этой конкретной моделью или подобными ей Из-за отсутствия онлайн-справки, похоже, очень немногие люди имеют опыт работы с ней.
Буду очень признателен за понимание или помощь в создании прогнозов с RetinaNet.