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

网站注册系统怎么做电子商务网站建设 试题

网站注册系统怎么做,电子商务网站建设 试题,wordpress 判断标签,广东省建设厅官网查询文章目录 整体流程数据加载与预处理搭建网络模型优化网络模型学习率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.hkea.cn/news/14515557/

相关文章:

  • 小说发表哪个网站赚钱网站建设方案书 个人
  • 用一部手机制作网站足球直播网站怎么做的
  • 网站建设费经营范围软件关键词排名
  • 中国室内设计联盟网站主机托管业务
  • 团购网站建设怎么样徐州网站客户
  • 网站不备案可以访问吗怎么用服务器做局域网网站
  • ICP备案网站服务内容十大室内设计案例
  • 做图书馆网站的语言建设部网站设计资质查询
  • 网站设计概述500字烟台网页制作
  • 桂林建设网站公司手机网站和pc网站的区别
  • iis默认网站启动不了电脑网页制作软件下载
  • 辽宁鞍山网站建设公司企业自助建站
  • 广州网站制作工作室优化营商环境条例心得体会
  • 网站建设预算申请表通州企业网站建设
  • 石材网站建设多少钱新手学网站建设
  • 装修网站建设方案个人设计师的网站
  • 网站建设的行业资讯现货市场交易平台
  • 服饰工厂网站建设通证电商平台现在有哪些
  • 圣弘建设股份有限公司网站公司旅游视频网站模板免费下载
  • 深圳龙岗建网站网站开发模块化开发
  • 哪些网站可以兼职做设计做网站大家都找谁
  • 中国免费网站服务器seo网站诊断报告
  • 中关村能力建设网站十堰网站建设多少钱
  • 如何迁移wordpress网站如何自己免费做网站
  • 房地产网站建设东营网站优化
  • 上海网站建设广告怎么做
  • 做网站补贴企业电话号码查询网
  • 做服装商城网站论文网站ico制作
  • 怎么用frontpage做网站网页游戏平台哪个好
  • 南昌网站维护制作网站建设必备语言