谷歌训练ai(谷歌开源ai)

安妮排淮出自奥菲寺。
量子比特制作|微信官方账号QbitAI
如果你心里只有一件事。
请问:是学习吗?
谷歌希望你是,你准备好上马,再骑一次。
于是今天早上,大礼包又来了。
今年春天,谷歌发布了一个机器学习速成班,在英语中被称为MLCC。而且这套汉语基础课完全免费。
这还不够。
我觉得Google的光学理论还不够,一定要教你理论结合实战。
所谓“知行合一”。
因此,谷歌发布了最新的一套课程:机器学习实践(Machine Learning Practica)。本课程将演示谷歌如何在其产品中使用机器学习。
课程地址在这里:
https://developers.google.com/machine-learning/practica/
(.cn域名地址亲测可用)
与之前的课程不同,这次的实践课程包括视频、文档和交互式编程练习。目前网上第一课是图像分类。
在图像分类的实践课程中,你可以了解到Google是如何开发和利用最先进的图像分类模型的,这也是Google相册背后的核心技术。
到目前为止,已经有超过10000名谷歌员工使用这一实用课程训练自己的图像分类器,最终实现照片中猫狗的识别。
在备课之前,你想学这门课,有一些基本的要求。
主要有两点:
上过Google机器学习的速成班,或者有很好的编程基础知识和一些Python编程经验。本实用课程使用Keras API。除了课程中的编程练习,还使用了Colab。使用Colab不需要以前的Keras经验。
课程代码基本上提供了循序渐进的解释。
目前这个实用课程只发布了一组图像分类,但是Google说更多的实用课程在进行中:杭!耶!味道!
课程介绍在本课程中,Google首先介绍了图像分类的基本原理,描述了卷积神经网络(CNN)的构建,以及池化和全连接的概念。
然后,Google会指导你从零开始构建CNN网络,并学习如何防止过拟合,使用训练模型进行特征提取和微调。
该课程包括三组练习,即:
练习1:构建用于猫和狗分类的卷积网络带您构建用于猫和狗分类的卷积网络。练习2:防止过拟合教你如何防止过拟合,改进CNN模型。练习3:特征提取和微调教你如何通过特征提取和微调使用Google的Incident V3模型,为上面两个练习完成的分类器获得更好的准确率。演示量子位偷偷上了这门课,带回了第二次实操。在这堂课上,Google想教你如何在猫狗图像分类中减少过拟合。大家都觉得三三三五四。
练习2:减少过度拟合。
预计完成时间:30分钟
在本节中,我们将基于练习1中创建的模型对猫和狗进行分类,并通过一些策略来减少过拟合:即数据扩充和正则化方法dropout,以提高准确性。
就像一头大象被放进冰箱一样,这个分数需要四个步骤:
通过随机变换训练图像,我们可以探索数据增强的游戏。我们可以在数据处理过程中应用数据增强,在转换中加入丢失再训练模型,并对损失和准确性进行评估。我们开始吧!
数据增强的探索
数据增强是减少视觉模型过拟合的基本方法,因为手头的训练实例很少。为了充分利用它们,我们可以通过一些随机变换来“增强”它们。对于模特来说,这些都是不同的形象~
这可以通过向ImageDataGenerator实例读取的图像添加一些随机转换来实现,例如:
1 from keras . preprocessing . image import image data generator 2 3 data gen=image data generator(4 rotation _ range=40,5 width_shift_range=0.2,6 height _ shift _ range=0.2,7 shear _ range=0.2,8 zoom _ range=0.2,9 horizontal _ flip=true,10fill _ mode=’ nearest ‘)还有一些其他可用的选项:
旋转_范围是在0-180之间的一个值,可在此角度内随机旋转图片宽度_移位和高度_偏移是个范围,指的总宽度或高度的一部分,图像可在此范围内垂直或水平随机转换剪切范围用于随机剪切缩放范围用来随机缩放图片的。水平_翻转用于水平随机翻转图像的一半填充模式是用来填充新创造的像素,在图像随机垂直或水平变换后可能用到注意:此练习中使用的2000张图片摘自卡格尔上的”狗相对猫”数据集,包含25000张图片。为了节约训练时间,这里我们只用到其中的一个子集。
1!wget-no-check-certificate \ 2 https://存储。谷歌API。com/mledu-datasets/cats _ and _ dogs _ filtered。zip-O \ 3/tmp/cats _ and _ dogs _ filtered。zip 1导入OS 2导入zip文件3 4 local _ zip=’/tmp/cats _ and _ dogs _ filtered。zip ‘ 5zip _ ref=zip文件.ZipFile(local_zip,’ r ‘)6 zip _ ref。提取all(‘/tmp ‘)7 zip _ ref。close()8 9 base _ dir=’/tmp/cats _ and _ dogs _ filtered ‘ 10 train _ dir=OS。路径。join(base _ dir,’ train ‘)11 validation _ dir=OS。路径。join(base _ dir,’验证’)1213#目录与我们的训练猫图片14火车_猫_目录=OS。路径。加入(train _ dir,’猫’)1516#目录与我们的训练狗图片接下来,我们将数据生成转换应用到训练集里的猫咪图像,生成5个随机变量。这个单元需多运行几次,找到新批次中的随机变量。
1% matplotlib inline 2 3导入matplotlib。py plot作为PLT 4导入matplotlib。图像为来自keras的mpimg 5 6。预处理。镜像导入array _ to _ img,img_to_array,load _ img 7 8 img _ path=OS。路径。join(train _ cats _ dir,train _ cat _ fnames[2])9 img=load _ img(img _ path,target_size=(150,150)) #这是太平航运图像10x=img_to下面的流量()命令生成一批随机转换的图像14#它将无限循环,所以我们需要在某个时候”打破”循环!对于数据生成流(x,batch _ size=1):17 PLT中的批处理,15i=016。图18 imgplot=PLT。im show(array _ to _ img(batch[0]))19 I=120 if I % 5==0:21 break在数据处理过程中应用数据增强
现在,将上述增强的数据应用到数据预处理配置中——
1#向我们的图片生成器添加rescale、rotation_range、width_shift_range、height_shift_range、2号剪切_range、zoom_range和水平翻转3 train _ data gen=图像数据生成器(4 rescale=1 ./255,5 rotation_range=40,6 width_shift_range=0.2,7 height_shift_range=0.2,8 shear_range=0.2,9 zoom_range=0.2,10 horizontal_flip=True),1112#注意验证数据不要增广!13 test _ data gen=图像数据生成器(rescale=1 ./255)1415#使用train _ data gen generator 16 train _ generator=train _ data gen . Flow _ from _ directory(17 train _ dir,#这是训练图像的源目录18 target_size=(150,150),#所有图像将被调整到150×15019 batch_size=20,20 #由于我们使用二元交叉熵损失,我们需要二进制标签21 class_mode=’binary’)2223#流验证神奇之处是,若用增强的数据来训练模型,则不会被认为是相同示例(虽然它们都是从一张图片上得到的)。不过模型眼中这些输入仍紧密相关的,所以还不足以完全消除过拟合。
加入拒绝传统社会的人
不过~还有另外一种流行的策略能减少过拟合,即辍学者。
如果你想了解过拟合的基本概念,这里自卖自夸推荐两个之前免费课程中的相关介绍:
https://个开发者。谷歌。com/机器学习/速成课程/培训-神经网络/视频-讲座
https://developers.google.com/machine-learning/crash-course/
我们从练习一重新配置我们的convnet架构,在最后的分类层前试图添加一些辍学者.
数字一(one)从keras.models导入模型注射毒品从深度学习导入层3从优化者导入RMSprop从深度学习导入后端作为K 5导入张量流as tf 7 8#配置法国南部(French Southern Territories的缩写)后端会话9tf_config=tf .ConfigProto(10 gpu_options=tf .GPU选项(allow _ growth=True))11k。set _ session(TF .会话(config=TF _ config))1213 #我们的输入特征映射对于图像像素是1501503: 150150,对于14#三个颜色通道: R、G和B15img_input=图层是3。输入(shape=(150,150,3))1617#第一个卷积提取16个过滤器,它们是3×318#卷积之后是具有2×2窗口的最大池层19x=层.Conv2D(16,3,activation=’ relu ‘)(img _ input)20x=层MaxPooling2D(2)(x)2122#第二个卷积提取32个3323 #卷积后跟最大池层,具有22窗口24x=层.Conv2D(32,3,activation=’relu’)(x)25x=层MaxPooling2D(2)(x)2627#第三个卷积提取64个过滤器,即3×328#卷积之后是最大池层,具有2×2窗口29x=层数.Convolution2D(64,3,activation=’relu’)(x)30x=层MaxPooling2D(2)(x)3132#展平特征映射到一维tensor33x=层数.Flatten()(x)3435#用线性单元激活和512个隐藏单元36x=层数创建一个完全连接的层密(512,activation=’relu’)(x)3738#添加0.539x=层的辍学率辍学(0.5)(x)4041#使用单个节点和sigmoid激活42输出=层创建输出层密(1,激活=’sigmoid’)(x)4344#配置并编译模型45model=Model(img_input,output)46模型。编译(loss=’ binary _ cross entropy ‘,47 optimizer=RMSprop(lr=0.001),48 metrics=[‘acc’])重新训练模型
随着数据的增加和拒绝传统社会的人的填入,我们需要重新训练convnet模型。
这一次,我们训练全部的2000张图片,训练了30轮,并对验证了所有的1000个测试图像。
这可能需要几分钟的时间,检验一下你是否能自己编写代码了。
1#编写代码,在所有2000个图像上训练30个时期的模型,并在所有1,000个测试图像上验证2#评估结果
接下来,我们用数据增强和拒绝传统社会的人评估模型训练的结果。
1#检索关于训练和测试数据的准确度结果列表2#每个训练时期的集合3 ACC=历史。4 val _ ACC=history。历史记录5 6 #检索关于训练和测试数据的列表结果列表7#每个训练时期的集合8损失=历史。9 val _ loss=history。历史1011 #获取时期数12个时期=范围(len(acc))1314#绘制训练和验证准确度每结果不错!模型已经不再过拟合。
事实上,从我们的训练资料来看,随着训练次数的增加,模型的准确度会达到80%!
清理
在运行练习3之前,我们还需要运行以下单元来释放核心和空闲的内存资源:
数字一(one)导入os,signal2os.kill(os.getpid(),signal .还有一件事不知道是不是忙中出错,谷歌这套全新的课程,在我们发稿的时候,遇到了一个尴尬的问题:练习课程无法访问。
你点击练习之后,原本应该是转入一个科拉布页面,但是却把多数用户挡在一个这样的界面之上。如图:
链接地址:https://login.corp.google.com
这是啥?
其实这就是著名的moma,Google内部的一个搜索工具。如果你是谷歌员工,你可以登录并访问谷歌内部网。
可能是因为这个实用的课程和MLCC一样,也是之前Google的课程,所以才有了现在这个略显尴尬的一幕。
估计这个问题可能很快就能修复。
所以可以看一下上面量子比特处理课程的演示。
不急~
—结束—
真诚招聘
量子正在招聘编辑/记者,工作地点在北京中关村。期待有才华有热情的同学加入我们!详情请在QbitAI对话界面回复“招聘”二字。
量子qbitai头条签约作者
追踪AI技术和产品的新趋势。

其他教程

日本电视剧勇者斗恶龙(日本将上映两部CG动画《勇者斗恶龙》《鲁邦三世》)

2022-9-7 8:22:25

其他教程

《斗罗大陆》魂师对决内测(斗罗大陆魂师对决手游内测)

2022-9-7 8:24:28

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索