model = core.Model.load('model_weights.pth', ['alien','bat','witch'])
初级用法你会发现Detecto不只限于5行代码。举例来说,这个模型没有你希望的那幺好。我们可以尝试经过运用Torchvision转换来扩展我们的数据集并定义一个自定义数据加载器来提高其功用:
from torchvisionimport transforms
augmentations = transforms.Compose([
transforms.ToPILImage(),
transforms.RandomHorizontalFlip(0.5),
transforms.ColorJitter(saturation=0.5),
transforms.ToTensor(),
utils.normalize_transform(),
])
dataset = core.Dataset('images/', transform=augmentations)
loader = core.DataLoader(dataset, batch_size=2, shuffle=True)
此代码对数据集中的图像运用了随机的水平翻转和饱和效果,从而添加了数据的多样性。然后,我们运用 batch_size = 2 定义一个数据加载对象;我们将其传递给 model.fit 而不是Dataset,这样来通知我们的模型是对2张图像停止批量训练,而不是默许的1张。
假设你之前创立了独自的验证数据集,那幺如今是在训练时期加载它的时分了。经过提供验证数据集, fit 办法将前往每个时期的损失列表,假设 verbose = True ,则会在训练进程中将其打印出来。以下代码块演示了这一点,并自定义了其他几个训练参数:
import matplotlib.pyplotas plt
val_dataset = core.Dataset('validation_images/')
losses = model.fit(loader, val_dataset, epochs=10, learning_rate=0.001,
lr_step_size=5, verbose=True)
plt.plot(losses)
plt.show()
损失的结果图应或多或少地增加:
为了更具有灵敏性和对模型的控制,你可以完全绕过Detecto。你可以依据需求随意调整 model.get_internal_model 办法前往运用的基础模型。
结论在本教程中,作者展现了计算机视觉和对象检测不需求具有应战性。你所需求的是一点时间和耐烦来处置标记的的数集。
假设你对进一步探求感兴味的话,请查看Detecto on GitHub或拜访文档以获取更多教程和用例!
【编辑引荐】
Python开发者小工具,可视化py转exe
GitHub开源新命令行工具:在终端里创立、管理PR成理想
疫情之下,这是你也能上手的Python新冠病毒传达建模教程(附代码)
FSF 骚操作:给微软寄硬盘,欲空手套代码
Google:手机厂商们请不要再自行修正 Linux 内核代码了
(责任编辑:admin)