搜索
首页科技周边人工智能使用TensorFlow和Keras创建猫狗图片深度学习分类器

使用TensorFlow和Keras创建猫狗图片深度学习分类器

May 16, 2023 am 09:34 AM
深度学习tensorflowkeras

使用TensorFlow和Keras创建猫狗图片深度学习分类器

在本文中,我们将使用TensorFlow和Keras创建一个图像分类器,可以区分猫和狗的图像。为了做到这一点,我们将使用TensorFlow数据集中的cats_vs_dogs数据集。该数据集由25000张打过标签的猫和狗的图像组成,其中80%的图像用于训练,10%用于验证,10%用于测试。

加载数据

我们从使用TensorFlow Datasets加载数据集开始。将数据集拆分为训练集、验证集和测试集,分别占数据的80%、10%和10%,并定义一个函数来显示数据集中的一些样本图像。

<code>import tensorflow as tfimport matplotlib.pyplot as pltimport tensorflow_datasets as tfds# 加载数据(train_data, validation_data, test_data), info = tfds.load('cats_vs_dogs', split=['train[:80%]', 'train[80%:90%]', 'train[90%:]'], with_info=True, as_supervised=True)# 获取图像的标签label_names = info.features['label'].names# 定义一个函数来显示一些样本图像plt.figure(figsize=(10, 10))for i, (image, label) in enumerate(train_data.take(9)):ax = plt.subplot(3, 3, i + 1)plt.imshow(image)plt.title(label_names[label])plt.axis('off')</code>

使用TensorFlow和Keras创建猫狗图片深度学习分类器

预处理数据

在训练模型之前,需要对数据进行预处理。将把图片的大小调整为150x150像素的统一尺寸,将像素值归一化为0和1之间,并对数据进行批处理,这样就可以将其分批导入模型中。

<code>IMG_SIZE = 150</code>
<code>def format_image(image, label):image = tf.cast(image, tf.float32) / 255.0# Normalize the pixel valuesimage = tf.image.resize(image, (IMG_SIZE, IMG_SIZE))# Resize to the desired sizereturn image, labelbatch_size = 32train_data = train_data.map(format_image).shuffle(1000).batch(batch_size)validation_data = validation_data.map(format_image).batch(batch_size)test_data = test_data.map(format_image).batch(batch_size)</code>

使用TensorFlow和Keras创建猫狗图片深度学习分类器

搭建模型

本文将使用预先训练好的MobileNet V2模型作为基础模型,并在其中添加一个全局平均池化层和一个紧密层来进行分类。本文将冻结基础模型的权重,以便在训练期间只更新顶层的权重。

<code>base_model = tf.keras.applications.MobileNetV2(input_shape=(IMG_SIZE, IMG_SIZE, 3), include_top=False, weights='imagenet')base_model.trainable = False</code>
<code>global_average_layer = tf.keras.layers.GlobalAveragePooling2D()prediction_layer = tf.keras.layers.Dense(1)model = tf.keras.Sequential([base_model,global_average_layer,prediction_layer])model.compile(optimizer=tf.keras.optimizers.RMSprop(lr=0.0001),loss=tf.keras.losses.BinaryCrossentropy(from_logits=True),metrics=['accuracy'])</code>

训练模型

本文将对模型进行3个周期的训练,并在每个周期之后在验证集上对其进行验证。我们将在训练后保存模型,这样就可以在以后的测试中使用它。

<code>global_average_layer = tf.keras.layers.GlobalAveragePooling2D()prediction_layer = tf.keras.layers.Dense(1)model = tf.keras.Sequential([base_model,global_average_layer,prediction_layer])model.compile(optimizer=tf.keras.optimizers.RMSprop(lr=0.0001),loss=tf.keras.losses.BinaryCrossentropy(from_logits=True),metrics=['accuracy'])</code>
<code>history = model.fit(train_data,epochs=3,validation_data=validation_data)</code>

使用TensorFlow和Keras创建猫狗图片深度学习分类器

模型历史

如果想知道Mobilenet V2层是如何工作的,如下图所示是该层的一个结果。

使用TensorFlow和Keras创建猫狗图片深度学习分类器

评估模型

训练完成后将在测试集上评估该模型,看看它在新数据上的表现如何。

<code>loaded_model = tf.keras.models.load_model('cats_vs_dogs.h5')test_loss, test_accuracy = loaded_model.evaluate(test_data)</code>
<code>print('Test accuracy:', test_accuracy)</code>

进行预测

最后,本文将使用该模型对测试集中的一些样本图像进行预测,并显示结果。

<code>for image , _ in test_.take(90) : passpre = loaded_model.predict(image)plt.figure(figsize = (10 , 10))j = Nonefor value in enumerate(pre) : plt.subplot(7,7,value[0]+1)plt.imshow(image[value[0]])plt.xticks([])plt.yticks([])if value[1] > pre.mean() :j = 1color = 'blue' if j == _[value[0]] else 'red'plt.title('dog' , color = color)else : j = 0color = 'blue' if j == _[value[0]] else 'red'plt.title('cat' , color = color)plt.show()</code>

使用TensorFlow和Keras创建猫狗图片深度学习分类器

大功告成!我们通过使用TensorFlow和Keras创建了一个图像分类器,可以区分猫和狗的图像。通过一些调整和微调,也可以将这种方法应用于其他图像分类问题。

以上是使用TensorFlow和Keras创建猫狗图片深度学习分类器的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文转载于:51CTO.COM。如有侵权,请联系admin@php.cn删除
阅读AI索引2025:AI是您的朋友,敌人还是副驾驶?阅读AI索引2025:AI是您的朋友,敌人还是副驾驶?Apr 11, 2025 pm 12:13 PM

斯坦福大学以人为本人工智能研究所发布的《2025年人工智能指数报告》对正在进行的人工智能革命进行了很好的概述。让我们用四个简单的概念来解读它:认知(了解正在发生的事情)、欣赏(看到好处)、接纳(面对挑战)和责任(弄清我们的责任)。 认知:人工智能无处不在,并且发展迅速 我们需要敏锐地意识到人工智能发展和传播的速度有多快。人工智能系统正在不断改进,在数学和复杂思维测试中取得了优异的成绩,而就在一年前,它们还在这些测试中惨败。想象一下,人工智能解决复杂的编码问题或研究生水平的科学问题——自2023年

开始使用Meta Llama 3.2 -Analytics Vidhya开始使用Meta Llama 3.2 -Analytics VidhyaApr 11, 2025 pm 12:04 PM

Meta的Llama 3.2:多模式和移动AI的飞跃 Meta最近公布了Llama 3.2,这是AI的重大进步,具有强大的视觉功能和针对移动设备优化的轻量级文本模型。 以成功为基础

AV字节:Meta&#039; llama 3.2,Google的双子座1.5等AV字节:Meta&#039; llama 3.2,Google的双子座1.5等Apr 11, 2025 pm 12:01 PM

本周的AI景观:进步,道德考虑和监管辩论的旋风。 OpenAI,Google,Meta和Microsoft等主要参与者已经释放了一系列更新,从开创性的新车型到LE的关键转变

与机器交谈的人类成本:聊天机器人真的可以在乎吗?与机器交谈的人类成本:聊天机器人真的可以在乎吗?Apr 11, 2025 pm 12:00 PM

连接的舒适幻想:我们在与AI的关系中真的在蓬勃发展吗? 这个问题挑战了麻省理工学院媒体实验室“用AI(AHA)”研讨会的乐观语气。事件展示了加油

了解Python的Scipy图书馆了解Python的Scipy图书馆Apr 11, 2025 am 11:57 AM

介绍 想象一下,您是科学家或工程师解决复杂问题 - 微分方程,优化挑战或傅立叶分析。 Python的易用性和图形功能很有吸引力,但是这些任务需要强大的工具

3种运行Llama 3.2的方法-Analytics Vidhya3种运行Llama 3.2的方法-Analytics VidhyaApr 11, 2025 am 11:56 AM

Meta's Llama 3.2:多式联运AI强力 Meta的最新多模式模型Llama 3.2代表了AI的重大进步,具有增强的语言理解力,提高的准确性和出色的文本生成能力。 它的能力t

使用dagster自动化数据质量检查使用dagster自动化数据质量检查Apr 11, 2025 am 11:44 AM

数据质量保证:与Dagster自动检查和良好期望 保持高数据质量对于数据驱动的业务至关重要。 随着数据量和源的增加,手动质量控制变得效率低下,容易出现错误。

大型机在人工智能时代有角色吗?大型机在人工智能时代有角色吗?Apr 11, 2025 am 11:42 AM

大型机:AI革命的无名英雄 虽然服务器在通用应用程序上表现出色并处理多个客户端,但大型机是专为关键任务任务而建立的。 这些功能强大的系统经常在Heavil中找到

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境