如何根据 Kaggle 上的数据创建模型
本教程演示了如何使用FastAI库训练一个图像分类模型,区分猫和狗。 我们将逐步进行,从数据准备到模型训练和使用。
步骤一:数据准备
- 图像搜索函数: 首先,我们定义一个函数用于从DuckDuckGo搜索引擎搜索图像。该函数接受关键词和最大图像数量作为输入,返回图像URL列表。
import os iskaggle = os.environ.get('KAGGLE_KERNEL_RUN_TYPE', '') if iskaggle: !pip install -Uqq fastai 'duckduckgo_search>=6.2' from duckduckgo_search import DDGS from fastcore.all import * import time, json def search_images(keywords, max_images=200): return L(DDGS().images(keywords, max_results=max_images)).itemgot('image')
- 搜索和下载示例图像: 我们分别搜索“dog photos”和“cat photos”,下载一张示例图片。
urls = search_images('dog photos', max_images=1) from fastdownload import download_url dest = 'dog.jpg' download_url(urls[0], dest, show_progress=False) from fastai.vision.all import * im = Image.open(dest) im.to_thumb(256,256)
同样地,我们下载一张猫的图片:
download_url(search_images('cat photos', max_images=1)[0], 'cat.jpg', show_progress=False) Image.open('cat.jpg').to_thumb(256,256)
- 批量下载和预处理图像: 我们下载多张猫和狗的图片,并将其分别保存到
dog_or_not/dog
和dog_or_not/cat
文件夹中。 同时,我们调整图像大小以提高效率。
searches = 'dog', 'cat' path = Path('dog_or_not') for o in searches: dest = (path/o) dest.mkdir(exist_ok=True, parents=True) download_images(dest, urls=search_images(f'{o} photo')) time.sleep(5) resize_images(path/o, max_size=400, dest=path/o)
- 清理无效图像: 删除下载失败或损坏的图片。
failed = verify_images(get_image_files(path)) failed.map(Path.unlink)
步骤二:模型训练
- 创建DataLoader: 使用
DataBlock
创建DataLoader,用于加载和处理图像数据。
dls = DataBlock( blocks=(ImageBlock, CategoryBlock), get_items=get_image_files, splitter=RandomSplitter(valid_pct=0.2, seed=42), get_y=parent_label, item_tfms=[Resize(192, method='squish')] ).dataloaders(path, bs=32) dls.show_batch(max_n=6)
- 微调预训练模型: 使用预训练的ResNet50模型,并在我们的数据集上进行微调。
learn = vision_learner(dls, resnet50, metrics=error_rate) learn.fine_tune(3)
步骤三:模型使用
- 预测: 使用训练好的模型预测之前下载的示例狗图片。
is_dog,_,probs = learn.predict(PILImage.create('dog.jpg')) print(f'This is a: {is_dog}.') print(f"Probability it's a dog: {probs[1]:.4f}")
输出结果:
This is a: dog. Probability it's a dog: 1.0000
这个教程展示了如何利用FastAI快速构建一个简单的图像分类模型。 记住,模型的准确性取决于训练数据的质量和数量。
以上是如何根据 Kaggle 上的数据创建模型的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

Linux终端中查看Python版本时遇到权限问题的解决方法当你在Linux终端中尝试查看Python的版本时,输入python...

使用FiddlerEverywhere进行中间人读取时如何避免被检测到当你使用FiddlerEverywhere...

在使用Python的pandas库时,如何在两个结构不同的DataFrame之间进行整列复制是一个常见的问题。假设我们有两个Dat...

如何在10小时内教计算机小白编程基础?如果你只有10个小时来教计算机小白一些编程知识,你会选择教些什么�...

Uvicorn是如何持续监听HTTP请求的?Uvicorn是一个基于ASGI的轻量级Web服务器,其核心功能之一便是监听HTTP请求并进�...

攻克Investing.com的反爬虫策略许多人尝试爬取Investing.com(https://cn.investing.com/news/latest-news)的新闻数据时,常常�...
