快速人工智能mooc的实用功能

duckgoose的Python项目详细描述


鸭鹅

在线fast.ai课程的实用程序脚本。有两个主要部分:一个用于下载和组织任意图像类,另一个用于突出显示图像的哪些部分正在激活分类决策。

  1. 用于第1课外部图像类实验的实用程序。剧本:
  • 从google images下载特定类别的图像
  • 健全性检查图像是否可以打开并有三个通道
  • 按照fast.ai库的要求,将图像组织到单独的文件夹(train/valid/test+classes)中
  1. 用于为两个分类创建类激活映射的实用程序。

先决条件

  • chromedriver是必需的。在ubuntu/debian上:sudo apt-get chromium-chromedriver

安装

pipinstallduckgoose

用法

获取、健全检查和组织图像

fromduckgooseimportfetchImagesAndPrepForClassification# dictionary structure `class_name => search term`image_classes={'ducks':'ducks -rubber','geese':'geese'}download_path='/home/myuser/data/downloaded_from_google'output_path='/home/myuser/data/ducksgeese/'number_of_images=100fetchImagesAndPrepForClassification(image_classes,download_path,output_path,number_of_images)

创建类激活映射(cam)

note:这是针对fastai v2第1部分实现的。 下面是一个使用fast ai为鸭子和鹅创建类激活映射的完整示例。

fromfastai.importsimport*fromfastai.transformsimport*fromfastai.conv_learnerimport*fromfastai.modelimport*fromfastai.datasetimport*fromfastai.sgdrimport*fromfastai.plotsimport*fromduckgoose.camimportcalculateAndChartHeatZoneForPATH="data/ducksgeese/"sz=224arch=resnet34bs=64m=arch(True)m=nn.Sequential(*children(m)[:-2],nn.Conv2d(512,2,3,padding=1),nn.AdaptiveAvgPool2d(1),Flatten(),nn.LogSoftmax())tfms=tfms_from_model(arch,sz,aug_tfms=transforms_side_on,max_zoom=1.1)data=ImageClassifierData.from_paths(PATH,tfms=tfms,bs=bs)learn=ConvLearner.from_model_data(m,data)learn.freeze_to(-4)_,val_tfms=tfms_from_model(learn.model,sz)learn.fit(0.01,2)calculateAndChartHeatZoneFor('./data/ducksgeese/test/ducks/ducks_427.jpg',val_tfms,learn)

Duck and goose heatmap

许可证

The MIT License (MIT)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java扫雷游戏的算法问题。游戏开始时隐藏地雷?   struts2的java迭代器标记   JavaFX如何创建精简菜单栏?   java从SQLite数据库获取字符串并检查是否等于变量不起作用   java如何检查移动数据连接   一旦我将Runnable传递给另一个线程中Swing的invokeAndWait,java就无法停止它   Java中每个键的多线程线程池   java没有可用的EjbContext   组织的java例外初始化错误。springframework。网状物util。UriComponentsBuilder。Android上的newInstance   java GWT CSS GUI通知用户浏览器问题   多线程一个Java编码程序,它读取一个巨大的CSV文件的行   java如何以编程方式打开特定应用程序的Android备份屏幕   java创建一个由10个整数组成的数组,并用1到6之间的随机数填充它   java如何将堆栈传递到方法中   java如何为注解@CurrentUser发送未经授权的响应   java访问switch语句中的对象   java如何正确扩展类   java DropboxAPI入门,未找到类