当前位置: 首页 > news >正文

农业网站电子商务平台建设方案厦门专业网站制作

农业网站电子商务平台建设方案,厦门专业网站制作,提供微信网站建设,用asp做网站题目目录 一、卷积分类器(The Convolutional Classifer)训练分类器 二、【代码示例】汽车卡车图片分类器步骤1. 导入数据步骤2 - 定义预训练模型步骤3 - 连接头部步骤4 - 训练模型 一、卷积分类器(The Convolutional Classifer) 卷积…

目录

  • 一、卷积分类器(The Convolutional Classifer)
    • 训练分类器
  • 二、【代码示例】汽车卡车图片分类器
      • 步骤1. 导入数据
      • 步骤2 - 定义预训练模型
      • 步骤3 - 连接头部
      • 步骤4 - 训练模型

一、卷积分类器(The Convolutional Classifer)

卷积神经网络(卷积网络、CNN)是在图像分类任务上表现最好的图像分类器。

用于图像分类的卷积神经网络由两部分组成:卷积基础(convolutional base)和稠密头部(dense head):

  • 卷积基础用于从图像中提取特征。它主要由执行卷积操作的层组成,但通常还包括其他类型的层。
  • 头部用于确定图像的类别。它主要由稠密层组成,但也可能包括其他层,如dropout层。
    卷积神经网络的组成部分:图像、基础、头部、类别;输入、提取、分类、输出。

什么是视觉特征?特征可以是线条、颜色、纹理、形状、模式,或者一些复杂的组合。整个过程大致如下:

The idea of feature extraction.
(实际提取的特征看起来可能略有不同,但这基本思想一致。)

训练分类器

在训练过程中,神经网络的目标是学会两件事情:

  1. 从图像中提取哪些特征(基础部分),
  2. 哪些特征对应于哪些类别(头部部分)。

如今,卷积神经网络很少从零开始训练。更常见的做法是使用预训练模型的基础部分,然后连接一个未训练的头部。换句话说,我们是基于一个预先训练好、并且已经学会特征提取的神经网络模型,在其上面增加一些全新的层,再次训练学习分类

将新的头部连接到训练好的基础部分。

由于头部通常只包含少量的稠密层,所以即使有相对较少的数据,也可以创建出非常准确的分类器。

重用预训练模型是一种被称为迁移学习的技术。它非常有效,以至于如今几乎每个图像分类器都会使用这种技术。

二、【代码示例】汽车卡车图片分类器

我们的数据集包含约一万张各种汽车的图片,大约一半是汽车,一半是卡车。

步骤1. 导入数据

# 导入所需库
import os, warnings
import matplotlib.pyplot as plt
from matplotlib import gridspecimport numpy as np
import tensorflow as tf
from tensorflow.keras.preprocessing import image_dataset_from_directory# 设置随机种子以保证可复现性
def set_seed(seed=31415):np.random.seed(seed)tf.random.set_seed(seed)os.environ['PYTHONHASHSEED'] = str(seed)os.environ['TF_DETERMINISTIC_OPS'] = '1'
set_seed(31415)# 设置 Matplotlib 默认参数
plt.rc('figure', autolayout=True)
plt.rc('axes', labelweight='bold', labelsize='large',titleweight='bold', titlesize=18, titlepad=10)
plt.rc('image', cmap='magma')
warnings.filterwarnings("ignore")  # 以清理输出单元格中的警告信息# 加载训练集和验证集
ds_train_ = image_dataset_from_directory('../input/car-or-truck/train',labels='inferred',label_mode='binary',image_size=[128, 128],interpolation='nearest',batch_size=64,shuffle=True,
)
ds_valid_ = image_dataset_from_directory('../input/car-or-truck/valid',labels='inferred',label_mode='binary',image_size=[128, 128],interpolation='nearest',batch_size=64,shuffle=False,
)# 数据处理流程
def convert_to_float(image, label):image = tf.image.convert_image_dtype(image, dtype=tf.float32)return image, labelAUTOTUNE = tf.data.experimental.AUTOTUNE
ds_train = (ds_train_.map(convert_to_float).cache().prefetch(buffer_size=AUTOTUNE)
)
ds_valid = (ds_valid_.map(convert_to_float).cache().prefetch(buffer_size=AUTOTUNE)
)

步骤2 - 定义预训练模型

最常用于预训练的数据集是 ImageNet,这是一个包含许多自然图像的大型数据集。Keras 在其 applications 模块 中包含了多种在 ImageNet 上预训练过的模型。我们将使用的预训练模型是 VGG16

pretrained_base = tf.keras.models.load_model('../input/cv-course-models/cv-course-models/vgg16-pretrained-base',
)
pretrained_base.trainable = False

以上代码加载了预训练的VGG16模型,并将其设置为不可训练(trainable = False)。这是迁移学习中常用的做法,通过重用已经在大规模数据集上训练过的模型,可以提取出图像的有用特征,从而在少量数据上构建准确的分类器。

步骤3 - 连接头部

接下来,我们要连接分类器的头部部分。在这个示例中,我们将使用一层隐藏单元(第一个 Dense 层),然后是一层将输出转换为类别1(Truck)的概率分数的层。Flatten 层将基础部分的二维输出转换为头部所需的一维输入。

from tensorflow import keras
from tensorflow.keras import layersmodel = keras.Sequential([pretrained_base, # 加载的VGG16模型,用于从图像中提取特征。layers.Flatten(), # 将提取的特征展平,以便送入后续的全连接层。layers.Dense(6, activation='relu'), # 6个神经元的隐藏层,使用ReLU激活函数。layers.Dense(1, activation='sigmoid'), # 输出层,包含一个神经元,使用Sigmoid激活函数。
])

步骤4 - 训练模型

由于这是一个两类问题,我们将使用二进制版本的 crossentropyaccuracy 作为损失函数和评估指标。通常情况下,adam 优化器表现较好,所以我们也选择了它。

model.compile(optimizer='adam',loss='binary_crossentropy',metrics=['binary_accuracy'],
)history = model.fit(ds_train,validation_data=ds_valid,epochs=30,verbose=0,
)

在训练神经网络时,检查损失和指标的图表始终是一个好的做法。history 对象包含了这些信息,可以通过 history.history 字典来获取。我们可以使用 Pandas 将这个字典转换为数据框,并使用内置方法进行绘制。

import pandas as pdhistory_frame = pd.DataFrame(history.history)
history_frame.loc[:, ['loss', 'val_loss']].plot()
history_frame.loc[:, ['binary_accuracy', 'val_binary_accuracy']].plot();

结果输出:
在这里插入图片描述

http://www.yayakq.cn/news/685517/

相关文章:

  • 网站建设问题清单网站建设工作情况
  • 安顺建设工程造价管理网站游戏app软件开发公司
  • 网站开发遇到过哪些技术难点做互助盘网站找哪家好
  • 蒲公英网站建设宁波网站设计服务收费价格
  • 深圳企业建网站公司seo每天一贴博客
  • 深鑫辉网站建设提交收录网站
  • 襄州区住房和城乡建设局网站网站后台管理增加功能
  • 自动化系统网站建设微商城和小程序区别
  • 网站下拉菜单重叠wordpress美容养生
  • 食品包装设计说明seo论坛
  • wordpress网站发布新月直播
  • 怎么做网站静态布局建设银行官方网站下载
  • 东莞网站建设 包装材料国土资源集约化网站群建设通知
  • 教外国人做中国菜网站海阳市建设局网站
  • .net网站开发实训体会wordpress论坛
  • 桃城网站建设价格网站流量不够怎么办
  • 黑河建设网站淘宝网页设计报告
  • 网站盗号怎么做湖南送变电建设公司 网站
  • 网站首页排名年报申报入口
  • 自助手机网站建站软件网站按钮样式
  • 贵阳网站seo公司企业网络营销策略设计
  • 重庆网站建设方案书打工网站校企合作建设
  • 深圳网站建设公司排名安丘做网站的
  • 湖南城乡建设部网站上海公司注销流程及资料
  • 网站备案价格新能源汽车车型及报价
  • 湖州做网站优化wordpress课程主题
  • 网站建设及政务工作自查专业企业展馆展厅设计公司
  • 网站开发教学视频教程手机域名
  • 众搜科技做百度网站广州安尔捷做的网站好吗
  • 华为网站哪个公司做的小程序和wordpress