可以将自己做的衣服展示的网站网站的流量建设

news/2025/9/26 9:15:33/文章来源:
可以将自己做的衣服展示的网站,网站的流量建设,江苏镇江,园林景观设计公司管理流程文章目录 0 前言1 常用的分类网络介绍1.1 CNN1.2 VGG1.3 GoogleNet 2 图像分类部分代码实现2.1 环境依赖2.2 需要导入的包2.3 参数设置(路径#xff0c;图像尺寸#xff0c;数据集分割比例)2.4 从preprocessedFolder读取图片并返回numpy格式(便于在神经网络中训练)2.5 数据预… 文章目录 0 前言1 常用的分类网络介绍1.1 CNN1.2 VGG1.3 GoogleNet 2 图像分类部分代码实现2.1 环境依赖2.2 需要导入的包2.3 参数设置(路径图像尺寸数据集分割比例)2.4 从preprocessedFolder读取图片并返回numpy格式(便于在神经网络中训练)2.5 数据预处理2.6 训练分类模型2.7 模型训练效果2.8 模型性能评估 3 1000种图像分类4 最后 0 前言 优质竞赛项目系列今天要分享的是 深度学习图像分类算法研究与实现 - 卷积神经网络图像分类 该项目较为新颖适合作为竞赛课题方向学长非常推荐 学长这里给一个题目综合评分(每项满分5分) 难度系数3分工作量3分创新点4分 更多资料, 项目分享 https://gitee.com/dancheng-senior/postgraduate 1 常用的分类网络介绍 1.1 CNN 传统CNN包含卷积层、全连接层等组件并采用softmax多类别分类器和多类交叉熵损失函数。如下图 卷积层(convolution layer): 执行卷积操作提取底层到高层的特征发掘出图片局部关联性质和空间不变性质。 池化层(pooling layer): 执行降采样操作。通过取卷积输出特征图中局部区块的最大值(max-pooling)或者均值(avg-pooling)。降采样也是图像处理中常见的一种操作可以过滤掉一些不重要的高频信息。 全连接层(fully-connected layer或者fc layer): 输入层到隐藏层的神经元是全部连接的。 非线性变化: 卷积层、全连接层后面一般都会接非线性变化层例如Sigmoid、Tanh、ReLu等来增强网络的表达能力在CNN里最常使用的为ReLu激活函数。 Dropout : 在模型训练阶段随机让一些隐层节点权重不工作提高网络的泛化能力一定程度上防止过拟合 在CNN的训练过程总由于每一层的参数都是不断更新的会导致下一次输入分布发生变化这样就需要在训练过程中花费时间去设计参数。在后续提出的BN算法中由于每一层都做了归一化处理使得每一层的分布相对稳定而且实验证明该算法加速了模型的收敛过程所以被广泛应用到较深的模型 1.2 VGG VGG 模型是由牛津大学提出的19层网络该模型的特点是加宽加深了网络结构核心是五组卷积操作每两组之间做Max- Pooling空间降维。同一组内采用多次连续的3X3卷积卷积核的数目由较浅组的64增多到最深组的512同一组内的卷积核数目是一样的。卷积之后接两层全连接层之后是分类层。该模型由于每组内卷积层的不同主要分为 11、13、16、19 这几种模型 增加网络深度和宽度也就意味着巨量的参数,而巨量参数容易产生过拟合也会大大增加计算量。 1.3 GoogleNet GoogleNet模型由多组Inception模块组成模型设计借鉴了NIN的一些思想. NIN模型特点 1. 引入了多层感知卷积网络(Multi-Layer Perceptron Convolution, MLPconv)代替一层线性卷积网络。MLPconv是一个微小的多层卷积网络即在线性卷积后面增加若干层1x1的卷积这样可以提取出高度非线性特征。2)设计最后一层卷积层包含类别维度大小的特征图然后采用全局均值池化(Avg-Pooling)替代全连接层得到类别维度大小的向量再进行分类。这种替代全连接层的方式有利于减少参数。 Inception 结构的主要思路是怎样用密集成分来近似最优的局部稀疏结构。 2 图像分类部分代码实现 2.1 环境依赖 ​ python 3.7 jupyter-notebook : 6.0.3 cudatoolkit 10.0.130 cudnn 7.6.5 tensorflow-gpu 2.0.0 scikit-learn 0.22.1 numpy cv2 matplotlib2.2 需要导入的包 ​ import osimport cv2import numpy as npimport pandas as pdimport tensorflow as tffrom tensorflow import kerasfrom tensorflow.keras import layers,modelsfrom tensorflow.keras.models import Sequentialfrom tensorflow.keras.optimizers import Adamfrom tensorflow.keras.callbacks import Callbackfrom tensorflow.keras.utils import to_categoricalfrom tensorflow.keras.applications import VGG19from tensorflow.keras.models import load_modelimport matplotlib.pyplot as pltfrom sklearn.preprocessing import label_binarizetf.compat.v1.disable_eager_execution()os.environ[CUDA_VISIBLE_DEVICES] 0 #使用GPU2.3 参数设置(路径图像尺寸数据集分割比例) ​ preprocessedFolder .\\ClassificationData\\ #预处理文件夹outModelFileName.\\outModelFileName\\ ImageWidth 512ImageHeight 320ImageNumChannels 3TrainingPercent 70 #训练集比例ValidationPercent 15 #验证集比例2.4 从preprocessedFolder读取图片并返回numpy格式(便于在神经网络中训练) ​ def read_dl_classifier_data_set(preprocessedFolder):num 0 # 图片的总数量cnt_class 0 #图片所属的类别label_list [] # 存放每个图像的label,图像的类别img_list [] #存放图片数据for directory in os.listdir(preprocessedFolder):tmp_dir preprocessedFolder directorycnt_class 1for image in os.listdir(tmp_dir):num 1tmp_img_filepath tmp_dir \\ imageim cv2.imread(tmp_img_filepath) # numpy.ndarrayim cv2.resize(im, (ImageWidth, ImageHeight)) # 重新设置图片的大小img_list.append(im)label_list.append(cnt_class) # 在标签中添加类别print(Picture str(num) Load tmp_img_filepathsuccessfully) print(共有 str(num) 张图片) print(allstr(num)picturs belong to str(cnt_class)classes) return np.array(img_list),np.array(label_list)all_data,all_labelread_dl_classifier_data_set(preprocessedFolder)2.5 数据预处理 图像数据压缩, 标签数据进行独立热编码one-hot ​ def preprocess_dl_Image(all_data,all_label):all_data all_data.astype(float32)/255 #把图像灰度值压缩到0--1.0便于神经网络训练all_label to_categorical(all_label) #对标签数据进行独立热编码return all_data,all_labelall_data,all_label preprocess_dl_Image(all_data,all_label) #处理后的数据对数据及进行划分训练集验证集测试集 0.7:0.15:0.15 ​ def split_dl_classifier_data_set(all_data,all_label,TrainingPercent,ValidationPercent):s np.arange(all_data.shape[0])np.random.shuffle(s) #随机打乱顺序all_data all_data[s] #打乱后的图像数据all_label all_label[s] #打乱后的标签数据all_len all_data.shape[0]train_len int(all_len*TrainingPercent/100) #训练集长度valadation_len int(all_len*ValidationPercent/100)#验证集长度temp_lentrain_lenvaladation_lentrain_data,train_label all_data[0:train_len,:,:,:],all_label[0:train_len,:] #训练集valadation_data,valadation_label all_data[train_len:temp_len, : , : , : ],all_label[train_len:temp_len, : ] #验证集test_data,test_label all_data[temp_len:, : , : , : ],all_label[temp_len:, : ] #测试集return train_data,train_label,valadation_data,valadation_label,test_data,test_labeltrain_data,train_label,valadation_data,valadation_label,test_data,test_labelsplit_dl_classifier_data_set(all_data,all_label,TrainingPercent,ValidationPercent)2.6 训练分类模型 使用迁移学习基于VGG19 epochs 30 batch_size 16 使用 keras.callbacks.EarlyStopping 提前结束训练 def train_classifier(train_data,train_label,valadation_data,valadation_label,lr1e-4):conv_base VGG19(weightsimagenet,include_topFalse,input_shape(ImageHeight, ImageWidth, 3) ) model models.Sequential()model.add(conv_base)model.add(layers.Flatten())model.add(layers.Dense(30, activationrelu)) model.add(layers.Dense(6, activationsoftmax)) #Dense: 全连接层。activation: 激励函数‘linear’一般用在回归任务的输出层而‘softmax’一般用在分类任务的输出层conv_base.trainableFalsemodel.compile(losscategorical_crossentropy,#loss: 拟合损失方法这里用到了多分类损失函数交叉熵 optimizerAdam(lrlr),#optimizer: 优化器梯度下降的优化方法 #rmspropmetrics[accuracy])model.summary() #每个层中的输出形状和参数。early_stoping tf.keras.callbacks.EarlyStopping(monitorval_loss,min_delta0,patience5,verbose0,baselineNone,restore_best_weightsTrue)history model.fit(train_data, train_label,batch_size16, #更新梯度的批数据的大小 iteration epochs / batch_size,epochs30, # 迭代次数validation_data(valadation_data, valadation_label), # 验证集callbacks[early_stoping])return model,history model,history train_classifier(train_data,train_label,valadation_data,valadation_label,)2.7 模型训练效果 ​ def plot_history(history):history_df pd.DataFrame(history.history)history_df[[loss, val_loss]].plot()plt.title(Train and valadation loss)history_df pd.DataFrame(history.history)history_df[[accuracy, val_accuracy]].plot()plt.title(Train and valadation accuracy)plot_history(history)2.8 模型性能评估 使用测试集进行评估 输出分类报告和混淆矩阵 绘制ROC和AUC曲线 from sklearn.metrics import classification_report from sklearn.metrics import confusion_matrix from sklearn.metrics import accuracy_score import seaborn as sns Y_pred_ttamodel.predict_classes(test_data) #模型对测试集数据进行预测 Y_test [np.argmax(one_hot)for one_hot in test_label]# 由one-hot转换为普通np数组 Y_pred_ttamodel.predict_classes(test_data) #模型对测试集进行预测 Y_test [np.argmax(one_hot)for one_hot in test_label]# 由one-hot转换为普通np数组 print(验证集分类报告\n,classification_report(Y_test,Y_pred_tta)) confusion_mc confusion_matrix(Y_test,Y_pred_tta)#混淆矩阵 df_cm pd.DataFrame(confusion_mc) plt.figure(figsize (10,7)) sns.heatmap(df_cm, annotTrue, cmapBuPu,linewidths1.0,fmtd) plt.title(PipeLine accuracy:{0:.3f}.format(accuracy_score(Y_test,Y_pred_tta)),fontsize20) plt.ylabel(True label,fontsize20) plt.xlabel(Predicted label,fontsize20)​ from sklearn.metrics import precision_recall_curve from sklearn.metrics import average_precision_score from sklearn.metrics import roc_curve from sklearn import metrics import matplotlib as mpl# 计算属于各个类别的概率返回值的shape [n_samples, n_classes] y_score model.predict_proba(test_data) # 1、调用函数计算验证集的AUC print (调用函数auc, metrics.roc_auc_score(test_label, y_score, averagemicro)) # 2、手动计算验证集的AUC #首先将矩阵test_label和y_score展开然后计算假正例率FPR和真正例率TPR fpr, tpr, thresholds metrics.roc_curve(test_label.ravel(),y_score.ravel()) auc metrics.auc(fpr, tpr) print(手动计算auc, auc) mpl.rcParams[font.sans-serif] uSimHei mpl.rcParams[axes.unicode_minus] False #FPR就是横坐标,TPR就是纵坐标 plt.figure(figsize (10,7)) plt.plot(fpr, tpr, c r, lw 2, alpha 0.7, label uAUC%.3f % auc) plt.plot((0, 1), (0, 1), c #808080, lw 1, ls --, alpha 0.7) plt.xlim((-0.01, 1.02)) plt.ylim((-0.01, 1.02)) plt.xticks(np.arange(0, 1.1, 0.1)) plt.yticks(np.arange(0, 1.1, 0.1)) plt.xlabel(False Positive Rate, fontsize16) plt.ylabel(True Positive Rate, fontsize16) plt.grid(bTrue, ls:) plt.legend(loclower right, fancyboxTrue, framealpha0.8, fontsize12) plt.title(37个验证集分类后的ROC和AUC, fontsize18) plt.show()3 1000种图像分类 这是学长训练的能识别1000种类目标的图像分类模型演示效果如下 4 最后 更多资料, 项目分享 https://gitee.com/dancheng-senior/postgraduate

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/918035.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站怎么更新数据重庆网架加工厂

华子目录 概念工作流程工作图流程(按行处理) awk程序执行方式1.通过命令行执行awk程序实例 2.awk命令调用脚本执行实例 3.直接使用awk脚本文件调用实例 awk命令的基本语法格式BEGIN模式与END模式实例awk的输出 记录和域(记录表示数据行&#…

机械网站开发铁路局招聘正式工4000人

文章目录 赛题思路一、简介 -- 关于异常检测异常检测监督学习 二、异常检测算法2. 箱线图分析3. 基于距离/密度4. 基于划分思想 建模资料 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 一、简介 – 关于异常…

协会网站建设计划书工商局网站怎么做股东实名认证

1. 题目 给定一个整数序列&#xff1a;a1, a2, …, an&#xff0c;一个132模式的子序列 ai, aj, ak 被定义为&#xff1a;当 i < j < k 时&#xff0c;ai < ak < aj。 设计一个算法&#xff0c;当给定有 n 个数字的序列时&#xff0c;验证这个序列中是否含有132模…

网站主持人制作网站代言人asp 网站开发 软件

【leetcode面试经典150题】专栏系列将为准备暑期实习生以及秋招的同学们提高在面试时的经典面试算法题的思路和想法。本专栏将以一题多解和精简算法思路为主&#xff0c;题解使用C语言。&#xff08;若有使用其他语言的同学也可了解题解思路&#xff0c;本质上语法内容一致&…

实用指南:轻松玩转Swagger API文档神器

实用指南:轻松玩转Swagger API文档神器pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Mo…

记录java调用eclipse cdt 解析c++文件

环境: jdk1.8 eclipse cdt 9.11.1 需求: java 解析c++中的类,属性类型,属性名称,函数,函数参数,返回值。 注意点: 如果你是外网编码,移植依赖和代码到内网的时候 运行可能出现 class not found xxxx , 这…

Chormium 密码管理器表单结构体说明(基于Chromium138)

这个结构体(struct PasswordForm)是 Chromium 浏览器(以及所有基于 Chromium 的浏览器,例如 Chrome、Edge 等)中密码管理器用来存储和管理单个登录凭证(即一组用户名和密码)的核心数据结构。它不仅包含了用户名…

为什么人工智能选择Python?深入解析AI界的胶水语言

在人工智能(AI)的黄金时代,Python几乎"统治"了整个领域。从深度学习到机器学习,从学术研究到工业应用,Python无处不在。 但为什么是Python?为什么不是性能更强的C++、生态成熟的Java,或者其他现代语言…

惠安网站建设报价网站开发工程师招聘要求

有很多网友在问&#xff1a;TPlink路由器端口映射怎么设置&#xff1f;因为不懂端口映射的原理&#xff0c;所以无从下手&#xff0c;下面小编就给大家分享TPlink云路由器界面端口映射设置方法&#xff0c;帮助大家快速入门TP路由器端口映射设置方法。 1.登录路由器管理界面&a…

咸宁网站设计windows 上wordpress

上一篇中 我们详细讲了内存溢出 内存泄漏 还有相关的案例。 这篇博客中我们主要了解一下GC调优。 有些新手可能会有一点 疑问—— 这两者不是一回事吗&#xff1f;&#xff1f; 其实说一回事 也没错 因为GC调优本质上还是针对 堆上的内存 只不过前面我们关注的侧重点在于 不合…

模版网站有源代码吗注册公司代理费用多少钱

【vs2019】window10环境变量设置 【先赞后看养成习惯】求关注点赞收藏&#x1f60a; 安装VS2019时建议默认安装地址&#xff0c;最好不要改动&#xff0c;不然容易出问题 以下是安装完VS2019后环境变量的设置情况&#xff0c;C:\Program Files (x86)\Microsoft Visual Studi…

1 day(20250925) - when

第一天,好像时间还可利用的地方很多,其实是效率和时长都有待提升。 哇要做的事情都蛮复杂和多的,其实没那么难对吧,不过太多了,想要迈大步就变得不可能实现,而且迈大步总感觉会错过一些细节,不能够有底气。但是…

12分钟讲解Python核心理念

https://segmentfault.com/a/1190000047277781 12分钟讲解Python核心理念 本内容是对 Every Python Concept Explained in 12 Minutes 内容的翻译与整理。 Python之禅(The zen of Python) 当你在Python解释器中输入i…

【重要】什么是 PEP 8 规范

PEP 8 是 Python 官方的代码风格指南,全称为 Python Enhancement Proposal 8(Python 增强提案 8),旨在通过统一编码规范提升代码的可读性、一致性和可维护性。以下是其核心内容与重要性: 一、PEP 8 的核心规范代码…

实用指南:华为坤灵:点燃中小企业智能化的星火

实用指南:华为坤灵:点燃中小企业智能化的星火pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &…

阻止HTML input元素(type=number)中输入字母e的方法

在HTML中,<input type=number> 元素允许用户输入一个数字,它可以包含正数、负数、整数、浮点数以及特殊字符,如 e表示科学计数法。然而,在某些情况下,你可能不希望允许用户输入字母 e。为了实现这一目标,可…

荣县规划和建设局网站如何建设企业网站

力扣138&#xff1a;随机链表的复制 题目描述&#xff1a; 给你一个长度为 n 的链表&#xff0c;每个节点包含一个额外增加的随机指针 random &#xff0c;该指针可以指向链表中的任何节点或空节点。 构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成&#xff…

网站开发课表查询吉安工商注册官方网站

简介&#xff1a; 智能的运维平台&#xff0c;帮助企业业务平稳、智能、高效地运行。 每一起严重事故背后&#xff0c;必然有29次轻微事故和300起未遂先兆以及1000起事故隐患。—— 海恩法则(Heinrich‘s Law) 随着云计算时代的到来&#xff0c;大量企业将自己的业务逐步迁移…

网站建设广西企业展厅建筑外观

自己总结的&#xff0c;给大家参考一下&#xff0c;