查找H5文件的意图
Finding the intent of a H5 file
我已经下载了一些H5文件,据我目前的理解,这些文件包含经过训练的图像识别模型。我可以使用 Python、Keras、Tensorflow 和 ImageAI 在图像上成功应用这些模型。
从网上的一些例子中,我也发现其中一个模型是为检测汽车和人而训练的。所以我将一些汽车图像输入其中并且它起作用了。
我现在正尝试从 H5 文件本身获取该信息,以便我可以将一些预期的输入和一些非预期的输入传递到检测器中,看看会发生什么。
我在 Stack Overflow 上搜索了如何读取 H5 文件并从中获取信息, , [3], ,但我得到的所有输出只是一堆技术数据。
让我们举个具体的例子。我有一个可以明显识别汽车和卡车的模型:
正如我们在图像中看到的那样,矩形具有 car
和 truck
等标签,因此这是它可以识别的对象类型。我想从 H5 文件中准确获取该信息。
我有
import h5py
def printH5Content(filename: str):
with h5py.File(filename, 'r') as f:
print("Keys: %s" % f.keys())
a_group_key = list(f.keys())[0]
print(list(f[a_group_key]))
printH5Content(model_path)
但它只给我
Keys: <KeysViewHDF5 ['model_weights']>
['add_1', 'add_10', 'add_11', 'add_12', 'add_13', 'add_14', ... 'zero_padding2d_4', 'zero_padding2d_5']
另外,访客没有提供更多信息:
def printH5Content(filename: str):
with h5py.File(filename, 'r') as f:
f.visit(print)
如何从 H5 文件中获取词 car
和 truck
,以便我可以找出它的训练目的?
根据评论编辑:
我确信术语car
和truck
必须通过消除在H5文件中。我有 3 个输入:代码、H5 模型和 JPG 图片。
- JPG 只是像素的排列。它对内容一无所知。
- 我的代码只有6行,不包含任何术语
- 剩下的唯一选择就是H5文件
我的代码的最小版本是:
from imageai.Detection import ObjectDetection
detector = ObjectDetection()
detector.setModelTypeAsTinyYOLOv3()
detector.setModelPath("./models/yolo-tiny.h5")
detector.loadModel()
detection = detector.detectObjectsFromImage(input_image="./input/cars.jpg", output_image_path="./output/cars.jpg")
我错误地假设这些术语不在代码中。它们不在我的代码中,而是在导入的 ImageAI 库中。这可以通过使用 ImageAI 来确认,甚至无需加载 H5 文件:
from imageai.Detection import ObjectDetection
detector = ObjectDetection()
detector.setModelTypeAsTinyYOLOv3()
for _, value in detector.numbers_to_names.items():
print(value)
这给出了 ImageAI 可以检测到的 80 个项目的列表,包括 car
和 truck
。
我已经下载了一些H5文件,据我目前的理解,这些文件包含经过训练的图像识别模型。我可以使用 Python、Keras、Tensorflow 和 ImageAI 在图像上成功应用这些模型。
从网上的一些例子中,我也发现其中一个模型是为检测汽车和人而训练的。所以我将一些汽车图像输入其中并且它起作用了。
我现在正尝试从 H5 文件本身获取该信息,以便我可以将一些预期的输入和一些非预期的输入传递到检测器中,看看会发生什么。
我在 Stack Overflow 上搜索了如何读取 H5 文件并从中获取信息
让我们举个具体的例子。我有一个可以明显识别汽车和卡车的模型:
正如我们在图像中看到的那样,矩形具有 car
和 truck
等标签,因此这是它可以识别的对象类型。我想从 H5 文件中准确获取该信息。
我有
import h5py
def printH5Content(filename: str):
with h5py.File(filename, 'r') as f:
print("Keys: %s" % f.keys())
a_group_key = list(f.keys())[0]
print(list(f[a_group_key]))
printH5Content(model_path)
但它只给我
Keys: <KeysViewHDF5 ['model_weights']>
['add_1', 'add_10', 'add_11', 'add_12', 'add_13', 'add_14', ... 'zero_padding2d_4', 'zero_padding2d_5']
另外,访客没有提供更多信息:
def printH5Content(filename: str):
with h5py.File(filename, 'r') as f:
f.visit(print)
如何从 H5 文件中获取词 car
和 truck
,以便我可以找出它的训练目的?
根据评论编辑:
我确信术语car
和truck
必须通过消除在H5文件中。我有 3 个输入:代码、H5 模型和 JPG 图片。
- JPG 只是像素的排列。它对内容一无所知。
- 我的代码只有6行,不包含任何术语
- 剩下的唯一选择就是H5文件
我的代码的最小版本是:
from imageai.Detection import ObjectDetection
detector = ObjectDetection()
detector.setModelTypeAsTinyYOLOv3()
detector.setModelPath("./models/yolo-tiny.h5")
detector.loadModel()
detection = detector.detectObjectsFromImage(input_image="./input/cars.jpg", output_image_path="./output/cars.jpg")
我错误地假设这些术语不在代码中。它们不在我的代码中,而是在导入的 ImageAI 库中。这可以通过使用 ImageAI 来确认,甚至无需加载 H5 文件:
from imageai.Detection import ObjectDetection
detector = ObjectDetection()
detector.setModelTypeAsTinyYOLOv3()
for _, value in detector.numbers_to_names.items():
print(value)
这给出了 ImageAI 可以检测到的 80 个项目的列表,包括 car
和 truck
。