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

湘潭学校网站建设 精诚磐石网络站长之家素材

湘潭学校网站建设 精诚磐石网络,站长之家素材,电子商务平台如何推广营销,广州网站设计公司招聘一、说明 在这篇文章中#xff0c;我们将展示如何在 TensorFlow 2.0 中实现基本的卷积神经网络 \(AlexNet\)。AlexNet 架构由 Alex Krizhevsky 设计#xff0c;并与 Ilya Sutskever 和 Geoffrey Hinton 一起发布。并获得Image Net2012竞赛中冠军。 教程概述#xff1a; 理论… 一、说明 在这篇文章中我们将展示如何在 TensorFlow 2.0 中实现基本的卷积神经网络 \(AlexNet\)。AlexNet 架构由 Alex Krizhevsky 设计并与 Ilya Sutskever 和 Geoffrey Hinton 一起发布。并获得Image Net2012竞赛中冠军。 教程概述 理论回顾在 TensorFlow 2.0 中的实现 二 理论回顾         现实生活中的计算机视觉问题需要大量高质量数据进行训练。过去人们使用 CIFAR 和 NORB 数据集作为计算机视觉问题的基准数据集。然而ImageNet竞赛改变了这一点。该数据集需要比以前更复杂的网络才能获得良好的结果。         AlexNet 是 2012 年取得最佳结果的一种网络架构。它的 Top-5 错误率为 15.3%。第二好的成绩远远落后26.2%。         该架构有大约 6000 万个参数由以下层组成。 图层类型特征图尺寸内核大小跨步激活图像1227×227–––卷积9655×5511×114ReLU最大池化9627×273×32–卷积25627×275×51ReLU最大池化25613×133×32–卷积第384章13×133×31ReLU卷积第384章13×133×31ReLU卷积25613×133×31ReLU最大池化2566×63×32–完全连接–4096––ReLU完全连接–4096––ReLU完全连接–1000––软最大         在我们的例子中我们将仅在 ImageNet 数据集中的两个类上训练模型因此我们的最后一个全连接层将只有两个具有 Softmax 激活函数的神经元。         有一些变化使得 AlexNet 与当时的其他网络不同。让我们看看是什么改变了历史 2.1  重叠的池化层         标准池化层汇总同一内核图中相邻神经元组的输出。传统上相邻池单元总结的邻域不重叠。重叠池化层与标准池化层类似只是计算 Max 的相邻窗口彼此重叠。 2.2 ReLU 非线性         评估神经元输出的传统方法是使用 sigmoid 或 tanh 激活函数。这两个函数固定在最小值和最大值之间因此它们是饱和非线性的。然而在 AlexNet 中使用了修正线性单位函数或者简称为 \(ReLU\)。该函数的阈值为\(0\)。这是一个非饱和激活函数。         \(ReLU\) 函数需要更少的计算并允许更快的学习这对在大型数据集上训练的大型模型的性能有很大影响。 2.3  局部响应标准化         局部响应归一化 (LRN) 首次在 AlexNet 架构中引入其中选择的激活函数是 \(ReLU\)。使用 LRN 的原因是为了鼓励 侧向抑制。 这是指神经元减少其邻居活动的能力。当我们使用 ReLU 激活函数处理神经元时这非常有用。具有 \(ReLU\) 激活函数的神经元具有无界激活我们需要 LRN 对其进行标准化。 三. TensorFlow 2.0中的实现         交互式 Colab 笔记本可在以下链接找到         让我们从导入所有必需的库开始 # Load the TensorBoard notebook extension %load_ext tensorboard import datetime import numpy as np import tensorflow as tf import matplotlib.pyplot as pltfrom tensorflow.keras import Model from tensorflow.keras.models import Sequential from tensorflow.keras.utils import to_categorical from tensorflow.keras.losses import categorical_crossentropy from tensorflow.keras.preprocessing.image import ImageDataGenerator from tensorflow.keras.layers import Dense, Flatten, Conv2D, MaxPooling2D, Dropout         导入后我们需要准备数据。在这里我们将仅使用 ImageNet 数据集的一小部分。使用以下代码您可以下载所有图像并将它们存储在文件夹中。 import cv2 import urllib import requests import PIL.Image import numpy as np from bs4 import BeautifulSoup#ship synset page requests.get(http://www.image-net.org/api/text/imagenet.synset.geturls?wnidn04194289) soup BeautifulSoup(page.content, html.parser) #bicycle synset bikes_page requests.get(http://www.image-net.org/api/text/imagenet.synset.geturls?wnidn02834778) bikes_soup BeautifulSoup(bikes_page.content, html.parser)str_soupstr(soup) split_urlsstr_soup.split(\r\n)bikes_str_soupstr(bikes_soup) bikes_split_urlsbikes_str_soup.split(\r\n)!mkdir /content/train !mkdir /content/train/ships !mkdir /content/train/bikes !mkdir /content/validation !mkdir /content/validation/ships !mkdir /content/validation/bikesimg_rows, img_cols 32, 32 input_shape (img_rows, img_cols, 3)def url_to_image(url):resp urllib.request.urlopen(url)image np.asarray(bytearray(resp.read()), dtypeuint8)image cv2.imdecode(image, cv2.IMREAD_COLOR)return imagen_of_training_images100 for progress in range(n_of_training_images):if not split_urls[progress] None:try:I url_to_image(split_urls[progress])if (len(I.shape))3:save_path /content/train/ships/imgstr(progress).jpgcv2.imwrite(save_path,I)except:Nonefor progress in range(n_of_training_images):if not bikes_split_urls[progress] None:try:I url_to_image(bikes_split_urls[progress])if (len(I.shape))3:save_path /content/train/bikes/imgstr(progress).jpgcv2.imwrite(save_path,I)except:Nonefor progress in range(50):if not split_urls[progress] None:try:I url_to_image(split_urls[n_of_training_imagesprogress])if (len(I.shape))3:save_path /content/validation/ships/imgstr(progress).jpgcv2.imwrite(save_path,I)except:Nonefor progress in range(50):if not bikes_split_urls[progress] None:try:I url_to_image(bikes_split_urls[n_of_training_imagesprogress])if (len(I.shape))3:save_path /content/validation/bikes/imgstr(progress).jpgcv2.imwrite(save_path,I)except:None         现在我们可以创建一个网络。原始 AlexNet 的最后一层有 1000 个神经元但这里我们只使用一个。这是因为我们只将图像用于两个类。为了构建我们的卷积神经网络我们将使用 Sequential API。 num_classes 2# AlexNet model class AlexNet(Sequential):def __init__(self, input_shape, num_classes):super().__init__()self.add(Conv2D(96, kernel_size(11,11), strides 4,padding valid, activation relu,input_shape input_shape,kernel_initializer he_normal))self.add(MaxPooling2D(pool_size(3,3), strides (2,2),padding valid, data_format None))self.add(Conv2D(256, kernel_size(5,5), strides 1,padding same, activation relu,kernel_initializer he_normal))self.add(MaxPooling2D(pool_size(3,3), strides (2,2),padding valid, data_format None)) self.add(Conv2D(384, kernel_size(3,3), strides 1,padding same, activation relu,kernel_initializer he_normal))self.add(Conv2D(384, kernel_size(3,3), strides 1,padding same, activation relu,kernel_initializer he_normal))self.add(Conv2D(256, kernel_size(3,3), strides 1,padding same, activation relu,kernel_initializer he_normal))self.add(MaxPooling2D(pool_size(3,3), strides (2,2),padding valid, data_format None))self.add(Flatten())self.add(Dense(4096, activation relu))self.add(Dense(4096, activation relu))self.add(Dense(1000, activation relu))self.add(Dense(num_classes, activation softmax))self.compile(optimizer tf.keras.optimizers.Adam(0.001),losscategorical_crossentropy,metrics[accuracy])model AlexNet((227, 227, 3), num_classes) 创建模型后我们定义一些重要的参数以供以后使用。此外让我们创建图像数据生成器。\(AlexNet\)的参数非常多有6000万个这是一个巨大的数字。如果没有足够的数据这将很可能导致过度拟合。因此在这里我们将利用数据增强技术您可以在此处找到更多相关信息。 出于同样的原因AlexNet 中使用了 dropout 层。该技术包括以预定概率“关闭”神经元。这迫使每个神经元具有更强大的特征可以与其他神经元一起使用。我们不会在这里使用 dropout 层因为我们不会使用整个数据集。 # some training parameters EPOCHS 100 BATCH_SIZE 32 image_height 227 image_width 227 train_dir train valid_dir validation model_dir my_model.h5 train_datagen ImageDataGenerator(rescale1./255,rotation_range10,width_shift_range0.1,height_shift_range0.1,shear_range0.1,zoom_range0.1)train_generator train_datagen.flow_from_directory(train_dir,target_size(image_height, image_width),color_modergb,batch_sizeBATCH_SIZE,seed1,shuffleTrue,class_modecategorical)valid_datagen ImageDataGenerator(rescale1.0/255.0) valid_generator valid_datagen.flow_from_directory(valid_dir,target_size(image_height, image_width),color_modergb,batch_sizeBATCH_SIZE,seed7,shuffleTrue,class_modecategorical) train_num train_generator.samples valid_num valid_generator.samples 现在我们可以设置TensorBoard并开始训练我们的模型。这样我们就可以实时跟踪模型性能。 log_dirlogs/fit/ datetime.datetime.now().strftime(%Y%m%d-%H%M%S) tensorboard_callback tf.keras.callbacks.TensorBoard(log_dirlog_dir) callback_list [tensorboard_callback]# start training model.fit(train_generator,epochsEPOCHS,steps_per_epochtrain_num // BATCH_SIZE,validation_datavalid_generator,validation_stepsvalid_num // BATCH_SIZE,callbackscallback_list,verbose0)# save the whole model model.save(model_dir)%tensorboard --logdir logs/fit 让我们使用我们的模型进行一些预测并将其可视化。 class_names [bike, ship]x_valid, label_batch next(iter(valid_generator))prediction_values model.predict_classes(x_valid)# set up the figure fig plt.figure(figsize(10, 6)) fig.subplots_adjust(left0, right1, bottom0, top1, hspace0.05, wspace0.05)# plot the images: each image is 227x227 pixels for i in range(8):ax fig.add_subplot(2, 4, i 1, xticks[], yticks[])ax.imshow(x_valid[i,:],cmapplt.cm.gray_r, interpolationnearest)if prediction_values[i] np.argmax(label_batch[i]):# label the image with the blue textax.text(3, 17, class_names[prediction_values[i]], colorblue, fontsize14)else:# label the image with the red textax.text(3, 17, class_names[prediction_values[i]], colorred, fontsize14) 四、概括         在这篇文章中我们展示了如何在 TensorFlow 2.0 中实现 \(AlexNet\)。我们只使用了 ImageNet 数据集的一部分这就是为什么我们没有得到最好的结果。为了获得更高的准确性需要更多的数据和更长的训练时间。 参考资料  数据黑客变种rs    深度学习 机器学习 TensorFlow    2020 年 2 月 29 日  |  0
http://www.dnsts.com.cn/news/256864.html

相关文章:

  • 新农村建设 网站北京到广州航班时刻表
  • 哪个网站的域名便宜网站开场动画怎么做
  • 英文网站怎么做301跳转wordpress定时采集
  • 淄博建设工程学校官方网站做外贸的人如何上国外网站
  • 辽宁住房和城乡建设厅网站首页有赞分销平台
  • wordpress多媒体占用idseo快速优化报价
  • 简约网站设计网站开发费用税
  • 上海建网站服务器企业备案 网站服务内容
  • 做网站系统wordpress主题丢失
  • 网站浏览路径怎么做html5前端开发工程师
  • 做微网站要多少钱王烨轩
  • 一流的南昌网站建设深圳网站快速排名优化
  • 大连建设执业资格注册中心网站镇江企业宽带
  • 幕墙配件在那个网站做推广好电影网站带采集
  • 深圳网站建设网牛天下电商网站前端设计方案
  • 北京网站制作公司哪家好番禺南浦
  • 自学网站推荐免费app开发平台
  • 北京东城区做网站的公司网站前端设计招聘
  • 东城网站建设建筑工程网人才网
  • 沈阳高端网站定制开发公司门户网站模板
  • 做淘宝首页初学ps视频网站如何免费建立自己的网站
  • 网站做什么内容赚钱安徽网站建设服务平台
  • 咸阳学校网站建设哪家好广告设计公司需要哪些设备
  • 怎么做宣传网页南昌seo网站开发
  • 权重查询爱站网网站系统繁忙是什么意思
  • 海口网站建设王道下拉棒网页设计美食范例简约
  • 简单大气食品农业网站源码网站空间800m
  • 网站备案多少岁赣州同城网
  • 网站建设公司效果华为应用市场下载安装
  • 网站建设项目设计书什么网站广告最多