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

网站注册系统怎么做东莞做网站首选企业铭

网站注册系统怎么做,东莞做网站首选企业铭,河北君卓展览装饰有限公司,青海省高等级公路建设管局网站文章目录 整体流程数据加载与预处理搭建网络模型优化网络模型学习率Drop-out操作权重初始化方法对比正则化加载模型进行测试 实战#xff1a;利用Keras框架搭建神经网络模型实现基本图像分类识别#xff0c;使用自己的数据集进行训练测试。 问#xff1a;为什么选择Keras利用Keras框架搭建神经网络模型实现基本图像分类识别使用自己的数据集进行训练测试。 问为什么选择Keras 答使用Keras便捷快速。用起来简单入门容易上手快。没有tensorflow那么复杂的规范。 整体流程 读取数据数据预处理切分数据集分为训练集和测试集搭建网络模型初始化参数训练网络模型评估测试模型通过对比不同参数下损失函数不断优化模型保存模型到本地 1手动配置参数设置数据存储路径、模型保存路径、图片保存路径 # 输入参数手动设置数据存储路径、模型保存路径、图片保存路径等 ap argparse.ArgumentParser() ap.add_argument(-d, --dataset, requiredTrue,helppath to input dataset of images) ap.add_argument(-m, --model, requiredTrue,helppath to output trained model) ap.add_argument(-l, --label-bin, requiredTrue,helppath to output label binarizer) ap.add_argument(-p, --plot, requiredTrue,helppath to output accuracy/loss plot) args vars(ap.parse_args())数据加载与预处理 # 拿到图像数据路径方便后续读取 imagePaths sorted(list(utils_paths.list_images(args[dataset]))) random.seed(42) random.shuffle(imagePaths) # 数据洗牌前设置随机种子确保后面调参过程中训练数据集一样# 遍历读取数据 for imagePath in imagePaths:# 读取图像数据由于使用神经网络需要输入数据给定成一维image cv2.imread(imagePath)# 而最初获取的图像数据是三维的则需要将三维数据进行拉长image cv2.resize(image, (32, 32)).flatten()data.append(image)# 读取标签通过读取数据存储位置文件夹来判断图片标签label imagePath.split(os.path.sep)[-2]labels.append(label)# scale图像数据归一化 data np.array(data, dtypefloat) / 255.0 labels np.array(labels)# 转换标签one-hot格式 lb LabelBinarizer() trainY lb.fit_transform(trainY) testY lb.transform(testY)数据预处理①通过数据除以255进行数据归一化②对数据标签进行格式转换。 搭建网络模型 创建序列结构 model Sequential()添加全连接层 第一层全连接层Dense设计512个神经元当前输入特征个数输入神经元个数为3072设置激活函数为relu第二层设计256个神经元第三层设计类别数个神经元即3个并作softmax操作得到最终分类类别。 # 第一层 model.add(Dense(512, input_shape(3072,),activationrelu)) # 第二层 model.add(Dense(256, activationrelu,)) # 第三层 model.add(Dense(len(lb.classes_), activationsoftmax,))初始化参数 # 学习率 INIT_LR 0.01 # 迭代次数 EPOCHS 200训练网络模型 # 给定损失函数和评估方法 opt SGD(lrINIT_LR) # 指定优化器为梯度下降的优化器 model.compile(losscategorical_crossentropy, optimizeropt,metrics[accuracy])# 训练网络模型 H model.fit(trainX, trainY, validation_data(testX, testY),epochsEPOCHS, batch_size32)测试网络模型 使用上面训练所得网络模型对测试集进行预测并对比预测解国和数据集真实结果打印结果报告包括准确率、recall、f1-score并将损失函数以折线图的效果直观展示出来 predictions model.predict(testX, batch_size32) print(classification_report(testY.argmax(axis1),predictions.argmax(axis1), target_nameslb.classes_))评估结果 从损失函数图像中可看出模型出现明显过拟合现象故而该初始参数所构建的模型效果较差需要通过调参优化模型。 优化网络模型 学习率 对比学习率为0.01和0.001的损失函数图像。 train_loss与val_loss之间差异仍然存在但是可看出学习率越大过拟合现象越明显。 Drop-out操作 Dropout操作在搭建网络模型中通过设置一0到1范围内的参数从而防止过拟合。 权重初始化方法对比 1RandomNormal随机高斯初始化 kernel_initializer initializers.random_normal(mean0.0,stddev0.05)model.add(Dense(512, input_shape(3072,),activationrelu,kernel_initializer initializers.random_normal(mean0.0,stddev0.05))) model.add(Dense(256, activationrelu,kernel_initializer initializers.random_normal(mean0.0,stddev0.05))) model.add(Dense(len(lb.classes_), activationsoftmax,kernel_initializer initializers.random_normal(mean0.0,stddev0.05)))图中可看出添加RandomNormal初始化后过拟合现象减弱了一丢丢。 2TruncatedNormal截断 kernel_initializer initializers.TruncatedNormal(mean0.0, stddev0.05, seedNone)相比于正常高斯分布截断了两边只取小于2倍stddev的值 model.add(Dense(512, input_shape(3072,), activationrelu ,kernel_initializer initializers.TruncatedNormal(mean0.0, stddev0.05))) model.add(Dense(256, activationrelu,kernel_initializer initializers.TruncatedNormal(mean0.0, stddev0.05))) model.add(Dense(len(lb.classes_), activationsoftmax,kernel_initializer initializers.TruncatedNormal(mean0.0, stddev0.05)))对比stddev取不同值时的loss函数图可得TruncatedNormal中stddev值越小过拟合风险越低模型效果越好。TruncatedNormal消除过拟合的效果RandomNormal好。 正则化 kernel_regularizerregularizers.l2(0.01)正则化后损失函数loss 初始loss aR(W)。正则化惩罚W让稳定的W减少过拟合。 model.add(Dense(512, input_shape(3072,), activationrelu ,kernel_initializer initializers.TruncatedNormal(mean0.0, stddev0.05, seedNone),kernel_regularizerregularizers.l2(0.01))) model.add(Dense(256, activationrelu,kernel_initializer initializers.TruncatedNormal(mean0.0, stddev0.05, seedNone),kernel_regularizerregularizers.l2(0.01))) model.add(Dense(len(lb.classes_), activationsoftmax,kernel_initializer initializers.TruncatedNormal(mean0.0, stddev0.05, seedNone),kernel_regularizerregularizers.l2(0.01)))对比正则化前后取迭代150到200的loss波动图可发现正则化后虽然开始时loss值较大但后期过拟合现象有明显减弱 再对比正则化参数l2 0.01和0.05的结果可得l2越大W的惩罚力度越大过拟合风险越小 加载模型进行测试 # 导入所需工具包 from keras.models import load_model import argparse import pickle import cv2# 设置输入参数 ap argparse.ArgumentParser() ap.add_argument(-i, --image, requiredTrue,helppath to input image we are going to classify) ap.add_argument(-m, --model, requiredTrue,helppath to trained Keras model) ap.add_argument(-l, --label-bin, requiredTrue,helppath to label binarizer) ap.add_argument(-w, --width, typeint, default28,helptarget spatial dimension width) ap.add_argument(-e, --height, typeint, default28,helptarget spatial dimension height) ap.add_argument(-f, --flatten, typeint, default-1,helpwhether or not we should flatten the image) args vars(ap.parse_args())# 加载测试数据并进行相同预处理操作 image cv2.imread(args[image]) output image.copy() image cv2.resize(image, (args[width], args[height]))# scale the pixel values to [0, 1] image image.astype(float) / 255.0# 对图像进行拉平操作 image image.flatten() image image.reshape((1, image.shape[0]))# 读取模型和标签 print([INFO] loading network and label binarizer...) model load_model(args[model]) lb pickle.loads(open(args[label_bin], rb).read())# 预测 preds model.predict(image)# 得到预测结果以及其对应的标签 i preds.argmax(axis1)[0] label lb.classes_[i]# 在图像中把结果画出来 text {}: {:.2f}%.format(label, preds[0][i] * 100) cv2.putText(output, text, (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 0.7,(0, 0, 255), 2)# 绘图 cv2.imshow(Image, output) cv2.waitKey(0)分类结果 通过预测结果可得该模型在预测猫上存在较大误差在预测熊猫上较为准确。或许改进增加迭代次数可进一步优化模型。
http://www.dnsts.com.cn/news/96730.html

相关文章:

  • 金融行业网站建设汕头seo推广外包
  • 三金网手机网站做网站方案
  • 企业宣传片短视频制作久久seo正规吗
  • 影响网站排名的因素 权重网站内容采编怎么做
  • 德州做网站建设的公司哪家好三步做一个抓娃娃机
  • 中小型网站有哪些凡科建站代理登录入口
  • 英文网站建设服务合同模板怎么自己编程做网站
  • 福建省铁路建设办公室网站凡客诚品官网网址
  • 怎么建立网站数据库连接接视频做的网网站
  • 网站前端开发流程制作app需要先做网站
  • 做网站如何上传湖北seo
  • 免费做做网站网上超市
  • 2021网站建设前景怎么样app开发制作网站平台
  • 沈阳企业网站设计制作安徽建设工程信息中标
  • 天塔网站建设公司素材最多的网站
  • 自己做的网站如何赚钱吗17173论坛
  • 贵州省城乡建设局网站查北京建网站公司哪家便宜
  • 云南电子政务网站建设做脚本从网站引流
  • 专业做公司网站的机构网站建设怎么估算费用和报价
  • 网站浏览排名郑州网络推广厂家
  • 广告公司企业网站模板wordpress执行生命周期
  • 万宁网站建设网站后台编辑器控件下载
  • 良品铺子网站制作百度应用商店app
  • 漫画驿站网页设计图纸尺寸图吴谨含厂家不愿做网站
  • 咋么做进网站跳转加群运维工程师主要做什么
  • 做网站时如何确定网站主题软件界面设计工具免费
  • 做网站专家网站设计部
  • 东莞国网站建设外贸网站建设报价表
  • 站长交流马云的网站是谁建设的
  • 建行官方网站 - 百度做搜狗网站点击