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

网上平台怎么推广手机网站怎么优化

网上平台怎么推广,手机网站怎么优化,网站备案 拉黑,重庆市建设工程信息网的信用信息发布平台文章目录 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 简介 优质竞赛项目系列今天要分享的是 基于人工智能的图像分类技术 该项目较为新颖适合作为竞赛课题方向学长非常推荐 更多资料, 项目分享 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.sczhlp.com/news/183307/

相关文章:

  • 邯郸兄弟建站怎么创建网站文件夹
  • 长沙做网站那家好建站平台和网站建设的区别
  • 网站优化网络公司邢台建设局网站
  • 阿里云二级域名网站怎么建设wordpress对接码支付教程
  • 北京市建设资格注册中心网站站长统计是什么意思
  • 网站开发人员工作内容室内装修设计学习网
  • 有没有个人网站遨游建站
  • 网站建设的仿站北京专业企业营销网站建设
  • 最安全的网站语言成都房地产公司前十名
  • 网站备案截图营销网站建站开发
  • 兰州网站建设公司有哪些深圳优化企业
  • 找不到自己做的dw网站一键免费建站
  • 深圳网站制作公司报价单网站开发文件夹组织结构
  • 法律咨询东莞网站建设上海方正大厦网站建设
  • 南阳网站建设赛科重庆是哪个省份的城市
  • 建设银行官方网站入口VIP视频网站有得做吗
  • 分析网站统计对网络营销的价值网站要流量有什么用
  • 做网站挂谷歌广告赚钱吗合肥网站推广公司排名
  • 网站后台网址后缀深圳市建设集团股份有限公司
  • 餐饮加盟网站模板做网站都需要什么资料
  • 广州增城区门户网站北京怎样在社保网站上做减员
  • Python clickhouse-driver 类库使用学习总结
  • 虚拟环境QA
  • 做网站用什么开发语言北京房产网官网
  • 接网站开发的公司母婴网站源码dede
  • 新吴区网站建设南京 网站建设模板价格
  • 网站开发答辩记录表网络建站工作室
  • 揭阳cms建站windows vps offline性x
  • 只有企业自己建立网站平台进行淘客网站怎么做啊
  • 甘肃省两学一做专题网站源丰建设有限公司网站