敏捷执行
TensorFlow热切执行环境即时评价运算,不建图:运算返回混凝土值,不建计算图后运行这使得很容易启动TensorFlow调试模型,并减少锅炉板随同指南运行下方代码样本交互R
翻译器
Eager执行是一个灵活的机器学习平台,用于研究和实验,提供:
- 直觉界面结构自然并使用R数据结构小模型和小数据快速迭代
- 易调试CallOps直接检查运行模型和测试修改标准R调试工具即时报错
- 自然控制流R控制流替代图控制流简化动态模型规范
卡塔尔世界杯欧洲预选赛赛程表Eager执行支持大多数TensorFlow操作和GPU加速
说明:某些模型可能经历高管增加并启动热执行性能改进正在进行中,但请文件错误发现问题分享基准
搭建和基本使用
Tensorflow 2.0中热执行默认启动
############################
可运行TensorFlow运算结果立即返回
x <-矩阵化高山市2,scol=一号,斜线=一号)m <-tf美联储马图尔(xx)m
##tf.Tensor
启动热执行改变TensorFlow操作行为-现在立即评价并返回Rtf$
对象参考混凝土值替代符号柄对计算图节点后期没有计算图构建运行 很容易使用结果检验打印版
或调试器评估、打印和检查推理值不会中断计算梯度流
eager执行与R腾索Flow数学运算R对象和R数组转换为tf$
对象详解上头数组
方法返回对象值数组
.
a <-tf美联储常量高山市矩阵化高山市C级高山市一号,2,3,4)scol=2)a/
##tf.Tensor##24.],形状=2,2,d类型=float64
##tf.Tensor##35],形状=22,d类型=float64
##tf.Tensor#####################################################20 ],形状=22,d类型=float64
###################################################################################
动态控制流
热执行的一个主要好处是主机语言所有功能都可用而模型执行时使用举个例子很容易写fizbuzz:
fizbuzz <-签名高山市函数显示{(max_num){计数 <-tf美联储常量高山市0)max_num <-tf美联储convert_to_tensor(max_num)For(num内(tf美联储范围划分(max_num)+一号)) {if(num)%%3汉城0)开机程序(num%%5汉城0)) {tf美联储打印高山市菲兹布兹)}其余if(num%%3汉城0) {tf美联储打印高山市风头)}其余if(num%%5汉城0) {tf美联储打印高山市巴兹)}其余{{tf美联储打印(Num)}计数 <-计数器+一号}}fizbuzz高山市15)
条件依赖shor值并运行时打印这些值
爱心训练
计算渐变
自动辨别实用机器学习算法等反向剖析训练神经网络热切执行期间使用tf$GraientTape
跟踪操作后计算渐变
可使用tf$GraientTape
训练/或计算急切梯度这对于复杂训练环路特别有用
因每次通话时都可能发生不同运算,所有前方通运运算都录入“磁带”。计算梯度,向后播放磁带并丢弃特殊化tf$GraientTape
只能计算一个梯度后续调用投出运行时报错
w <-tf美联储可变数高山市一号)带(tf美联储渐变图(b)%s%磁带 {损耗 <-华府*华府}梯度 <-磁带美联储渐变(亏 w)师傅
##tf.Tensor2.0形状=(d类型=float32
火车模型
下例创建多层模型分类标准MNIST手写数字显示优化层APIs
#取mnist数据并格式化mnist <-数据集mnist(b)数据集 <-tensor_slices_datasetmnist大赛美联储火车)%>%数据集位图高山市函数显示X){X级美联储x <-tf美联储投影(x)美联储xtf美联储浮点32/255X级美联储x <-tf美联储扩展dims(x)美联储x轴=-1L)unname名(x)}%>%数据集洗牌高山市1000)%>%数据集批量高山市32码)数据集
##
mnist模型 <-keras_model_sequential(b)%>%层委二高山市过滤器=16,内核大小=C级高山市3,3)激活=雷鲁,输入_shape=形状高山市NULL,NULL,一号)%>%层委二高山市过滤器=16,内核大小=C级高山市3,3)激活=雷鲁)%>%layer_global_average_pooling_2d(b)%>%层度高山市单位=10)
即使是不训练,调用模型并检验热执行输出
el <-数据集%>%数据集取用高山市一号)%>%数据集集(b)mnist建模el[s一号]])
## tf.Tensor( ## [[-8.50985199e-03 9.76161857e-04 -2.50255484e-02 -5.79575971e-02 ## -3.91511843e-02 -2.02112067e-02 1.19331172e-02 2.99258605e-02 ## 7.55230756e-03 3.86199094e-02] ## [-5.54877939e-03 1.90716446e-03 -1.70769673e-02 -3.62131633e-02 ## -2.53974535e-02 -1.38209835e-02 7.40819378e-03 1.79758631e-02 ## 5.72366873e-03 2.54252721e-02] ## [-2.37655244e-03 1.36287510e-03 -1.33525934e-02 -3.33486199e-02 ## -2.12530848e-02 -1.39125455e-02 5.86056244e-03 1.53014306e-02 ## 5.15997969e-03 2.24790853e-02] ## [-8.92254990e-04 2.28004996e-03 -1.07957972e-02 -3.00190244e-02 ## -1.75903179e-02 -1.35528101e-02 4.88691870e-03 1.25359586e-02 ## 5.23545966e-03 1.93263516e-02] ## [-4.21859929e-03 3.05507542e-03 -1.49999214e-02 -3.11945472e-02 ## -2.06255876e-02 -1.27387317e-02 6.34148577e-03 1.41533548e-02 ## 5.45461895e-03 2.25168187e-02] ## [-3.46548553e-03 1.24341354e-03 -1.45013975e-02 -4.30306159e-02 ## -3.16537209e-02 -1.74248051e-02 6.47401158e-03 2.26319134e-02 ## 5.64713310e-03 2.93269195e-02] ## [-6.41194824e-03 1.38130516e-03 -1.84288751e-02 -4.14446481e-02 ## -3.08680199e-02 -1.57348588e-02 7.77957682e-03 2.17617080e-02 ## 4.86520818e-03 2.92749219e-02] ## [-8.39145947e-03 -2.43743139e-04 -2.18558982e-02 -5.35714217e-02 ## -3.83904204e-02 -1.82459299e-02 1.09588886e-02 3.00901663e-02 ## 3.97703936e-03 3.47796679e-02] ## [-6.90627703e-03 -2.02620332e-03 -1.62484460e-02 -4.23779786e-02 ## -3.48815881e-02 -1.46378912e-02 7.04134628e-03 2.60561779e-02 ## 2.87065259e-03 3.00167799e-02] ## [-3.46036465e-03 3.34005570e-03 -1.42491609e-02 -2.86302492e-02 ## -1.86991822e-02 -1.21941017e-02 5.76612214e-03 1.24817807e-02 ## 5.39597031e-03 2.08636373e-02] ## [-6.75824890e-03 1.80363667e-03 -1.81528479e-02 -3.73662151e-02 ## -2.79965084e-02 -1.33580044e-02 7.09015829e-03 1.83111280e-02 ## 6.74578175e-03 2.72248089e-02] ## [-3.44557199e-03 1.44218188e-03 -1.55201033e-02 -3.91926579e-02 ## -3.03197410e-02 -1.78610198e-02 6.71680411e-03 2.06990894e-02 ## 5.46659622e-03 2.73653362e-02] ## [-2.98760762e-03 6.68506909e-05 -1.03480723e-02 -2.65669450e-02 ## -2.34568883e-02 -1.09654916e-02 3.45098414e-03 1.51341530e-02 ## 4.49841795e-03 2.06842236e-02] ## [-6.59199711e-03 1.85408711e-03 -1.94277260e-02 -4.28726152e-02 ## -2.99611464e-02 -1.58806108e-02 9.21235979e-03 2.24604607e-02 ## 5.33315912e-03 2.91829202e-02] ## [-7.55199324e-03 -9.93973459e-04 -2.15730183e-02 -5.56724407e-02 ## -4.60459515e-02 -2.07579192e-02 9.57913976e-03 3.33841294e-02 ## 4.62856423e-03 3.92136984e-02] ## [-2.03214702e-03 4.08457185e-04 -1.21998340e-02 -3.37962173e-02 ## -2.65589673e-02 -1.54427039e-02 4.19362914e-03 1.70531943e-02 ## 5.84620563e-03 2.43132822e-02] ## [-3.81546142e-03 1.21751742e-04 -1.36933727e-02 -3.54161970e-02 ## -2.85060816e-02 -1.41160497e-02 5.15741529e-03 1.88995544e-02 ## 5.81339980e-03 2.64615659e-02] ## [-4.51849913e-03 1.79681068e-04 -1.25195542e-02 -2.85590179e-02 ## -2.36752722e-02 -1.03663774e-02 4.86267731e-03 1.64620187e-02 ## 4.00224933e-03 2.16186680e-02] ## [-6.88880868e-03 2.30632047e-03 -2.50062961e-02 -6.10050745e-02 ## -4.42578457e-02 -2.45542563e-02 1.10575147e-02 3.20139751e-02 ## 7.40471063e-03 4.25111316e-02] ## [-8.04840680e-03 -1.73170422e-03 -2.13432573e-02 -5.59643619e-02 ## -4.14501876e-02 -1.88157260e-02 1.08416816e-02 3.29777822e-02 ## 3.58740776e-03 3.77420597e-02] ## [-2.12463085e-03 1.40806718e-03 -1.62827484e-02 -4.21891250e-02 ## -2.92056706e-02 -1.80202033e-02 6.18648017e-03 1.89643912e-02 ## 7.54634384e-03 2.85427365e-02] ## [-6.24155253e-03 3.68376786e-04 -1.89247429e-02 -4.59269919e-02 ## -3.55105102e-02 -1.77306253e-02 7.98209663e-03 2.48527452e-02 ## 5.78143680e-03 3.23706158e-02] ## [-1.42555241e-03 4.77403111e-04 -1.20030018e-02 -3.56824584e-02 ## -2.53661703e-02 -1.50882667e-02 5.09238290e-03 1.77882873e-02 ## 5.66911884e-03 2.43990738e-02] ## [-1.21319480e-02 -3.38456419e-04 -3.04601416e-02 -6.95648193e-02 ## -5.14865555e-02 -2.32764110e-02 1.34642534e-02 3.88753153e-02 ## 5.17100841e-03 4.83683124e-02] ## [-7.99048692e-03 1.30610866e-03 -2.30237599e-02 -5.47382683e-02 ## -3.83893251e-02 -2.00371165e-02 1.12129143e-02 2.90373228e-02 ## 5.98406652e-03 3.79212201e-02] ## [-6.75235782e-03 9.91679379e-04 -1.80075001e-02 -3.80989239e-02 ## -2.85798106e-02 -1.37160970e-02 7.86706619e-03 2.10245345e-02 ## 3.95417260e-03 2.71354374e-02] ## [-7.98894465e-03 4.55419155e-04 -2.53729578e-02 -6.31851330e-02 ## -4.31225747e-02 -2.33430732e-02 1.32131195e-02 3.43508609e-02 ## 5.29513042e-03 4.14416529e-02] ## [-3.49725038e-03 -2.39763220e-04 -1.08997943e-02 -2.69409642e-02 ## -2.45306063e-02 -1.08287791e-02 3.64527735e-03 1.59635600e-02 ## 3.91276646e-03 2.12638490e-02] ## [-6.46782434e-03 -7.04026374e-04 -1.56770907e-02 -3.86993401e-02 ## -3.16020884e-02 -1.30451052e-02 6.17024768e-03 2.19560675e-02 ## 4.18775994e-03 2.79887151e-02] ## [-5.55107370e-03 2.06118939e-03 -1.58842616e-02 -3.25190350e-02 ## -2.33283471e-02 -1.21178171e-02 6.47215592e-03 1.56531073e-02 ## 5.25392406e-03 2.41678189e-02] ## [-8.96292087e-03 -5.41977119e-04 -2.13856287e-02 -4.84847501e-02 ## -3.47109959e-02 -1.52589623e-02 1.07035376e-02 2.74108090e-02 ## 4.38953377e-03 3.33805010e-02] ## [-5.13768382e-03 -8.29380937e-04 -1.55788297e-02 -4.19435799e-02 ## -3.52306105e-02 -1.68032013e-02 6.36776956e-03 2.41187550e-02 ## 5.30361803e-03 3.00990045e-02]], shape=(32, 10), dtype=float32)
kras模型内嵌训练环路(使用适配法),但有时需要更多定制化举个例子训练圈热切实施
注:使用自定义函数tf$调试
检查条件是否维持工作热点图执行
train_step <-函数显示{(图像标签){带(tf美联储渐变图(b)%s%磁带 {登陆点 <-mnist建模图片制作训练=转正)tf美联储调试美联储平面平面上行程序美联储形状化形状高山市32码,10)损值 <-损失对象(标签,登录号)}失传历史附加件损失历史值梯度 <-磁带美联储渐变损值mnist模型美联储trainable_variables)优化器美联储应用梯度高山市Purrr居中市移位高山市链表mnist建模美联储trainable_variables)))}火车 <-签名高山市函数显示{}For数位数内后继-len高山市3)) {For批处理内数据集){火车阶梯批量一号批量2]])}tf美联储打印高山市Epoch....结束)}}火车(b)
历史 <-损失历史%>%Purrr居中市地图显示数组化%>%Purrr居中市平面dbl(b)ggplot2居中市qplot高山市x=续集长(历史)Y=历史详解gem=线程)
变量优化器
tf$可变
对象存储可变tf$
相似值培训方便
集合变量可封装成层或模型,并配之以操作方法看吧自定义Keras层和模型细节详解层次和模型间的主要差分是模型加法像适配
,评价
并保存
.
例例上自动辨别示例可重写
线性 <-函数显示{}keras_model_custom高山市模型_fn=函数显示{(自发){自定义美联储w <-tf美联储可变数高山市5,名称=权宜之计)自定义美联储b <-tf美联储可变数高山市10,名称=偏差)函数显示输入量掩码=NULL,训练=转正) {输入*自定义美联储华府+自定义美联储b/}}}
# 玩具数据集3x+2NUM_EXAMPLES <-2000年训练输入 <-tf美联储随机美联储常态高山市形状=形状NUM_EXAMPLES)噪声 <-tf美联储随机美联储常态高山市形状=形状NUM_EXAMPLES)培训输出 <-训练输入*3+2+噪声#损失函数优化损耗 <-函数显示{(模型输入目标){出错 <-模型化(输入量)-目标tf美联储裁值平均值(tf美联储广场i/error)}梯度 <-函数显示{(模型输入目标){带(tf美联储渐变图(b)%s%磁带 {损值 <-损耗模型输入目标}磁带美联储渐变损值链表建模美联储w模型美联储)}
下位 :
- 创建模型
- 损函数衍生模型参数
- 策略更新基于衍生物的变量
模型 <-线性(b)优化器 <-优化sgd高山市lr=0.01)猫高山市初始损耗,数字化高山市损耗模型培训输入 培训输出...汉城...)
##初始损失:68.66985
For一内后继-len高山市300)) {梯度 <-师傅模型训练输入 训练输出优化器美联储应用梯度Purrr系统居中市移位高山市链表高校链表建模美联储w模型美联储))if一%%20码汉城0)猫高山市败步i:,数字化高山市损耗模型培训输入量培训输出量...汉城...)}
## Loss at step 20 : 31.23723 ## Loss at step 40 : 14.52059 ## Loss at step 60 : 7.055109 ## Loss at step 80 : 3.721035 ## Loss at step 100 : 2.23201 ## Loss at step 120 : 1.566984 ## Loss at step 140 : 1.269965 ## Loss at step 160 : 1.137304 ## Loss at step 180 : 1.078052 ## Loss at step 200 : 1.051587 ## Loss at step 220 : 1.039765 ## Loss at step 240 : 1.034485 ## Loss at step 260 : 1.032126 ## Loss at step 280 : 1.031073 ## Loss at step 300 : 1.030602
##
##
注意:变量持续到最后引用对象删除,变量删除
基于对象保存
Keras模型中包含直觉保存重量
方法允许很容易创建检查站
save_model_weights_tf模范权宜之计)load_model_weights_tf模范文件路径=权宜之计)
使用tf$train$Checkpoint
可完全控制此进程
本节缩写版训练检查站指南.
##
检查站路由 <-kpt/检查站美联储保存(checkpoint_path)
###############
##
##
##
保存加载模型tf$train$Checkpoint
存储对象内部状态,不要求隐藏变量记录状态模型化
,a优化器
和全局步骤传递tf$train$Checkpoint
:
模型 <-keras_model_sequential(b)%>%层委二高山市过滤器=16,内核大小=C级高山市3,3)激活=雷鲁)%>%layer_global_average_pooling_2d(b)%>%层度高山市单位=10)优化器 <-优化adam高山市lr=0.001)检查站dir <-'path/to/model_dir'if高山市脱机dir自定义(checkpoint_dir))dir创建(checkpoint_dir,递归=转正)检查站前缀 <-文件.path(checkpoint_dir,机首)root <-tf美联储火车美联储检查站高山市优化器=优化器模型=模型化根线美联储保存(checkpoint_prefix)
##[1]path/to/mode_dir/cockt-1
##
注意:在许多训练循环中,变量创建后tf\(trainh)检查站.restore调用生成后立即恢复变量,并提供声明以确保检查站全载详情见训练检查站指南
面向对象度量
tf$keras$metrics
存储对象向调用对象传递新数据并取回结果tf$keras$metrics$result
方法,例如:
##tf.Tensor(0.0,形状=(d类型=float32)
##tf.Tensor(2.5,形状=(d类型=float32)
##tf.Tensor(2.5,形状=(d类型=float32)
##tf.Tensor(5.5形状=(d类型=float32)
##tf.Tensor(5.5形状=(d类型=float32)
简讯和TensorBoard
腾索波德可视化工具理解、调试优化模型培训过程程序使用执行时写事件汇总
可使用tf元汇总
记录急切执行变量摘要举例记录摘要损耗
百分百训练步数
logdir <-./tb/写子=tf美联储小结美联储create_file_writer(logdir)电流板高山市dir日志=logdir)# 这将打开浏览器窗口指向腾索板带写作程序美联储as_default{bjectiveFor台阶内后继-len高山市1000)) {#计算损失与火车实函数损耗=一号-0.001*阶梯if台阶%%百元汉城0)tf美联储小结美联储标量高山市损失损耗阶梯=阶梯化}}
高级自动辨别题
动态模型
tf$GraientTape
动态模型中也可以使用例子示例回溯行搜索算法看起来像正常R码,但梯度和可变性除外,尽管控制流复杂
行搜索阶梯 <-tf美联储自定义梯度高山市签名高山市函数显示fn,initx率=一号) {带(tf美联储渐变图(b)%s%磁带 {磁带美联储手表显示(init_x)值 <-网际网际网路(init_x)}梯度 <-磁带美联储渐变值,it_xgrad_norm <-tf美联储递减sum高校*高校)init_value <-传值时段值计算>微值-速率*grad_norm)x <-initx-速率*师傅值 <-网际网际网路(x)率=速率/2}链表(x,值))
自定义渐变
自定义渐变很容易覆盖渐变前沿函数内定义输入值、输出值或中间结果梯度举个例子,这里简单剪切回路梯度规范
scell_qrient_by_norm <-函数显示{(x,规范){y <-tf美联储身份识别(x)grad_fn <-函数显示{(结果){链表(tf美联储scell_by_norm(结果规范)NULL)}链表y,grad_fn}
自定义渐变常用为运算序列提供数值稳定的渐变
slog1pexm <-函数显示X){tf美联储数学类美联储日志记录高山市一号+tf美联储表达式(x))}grad_log1pex函数显示X){带(tf美联储渐变图(b)%s%磁带 {磁带美联储手表显示(x)值 <-日志1(x)}磁带美联储渐变(值,x)}
##tf.Tensor(0.5,形状=(d类型=float32)
##tf.Tensor(nan,形状=(d类型=float32)
来日志1
函数可用自定义渐变分析简化下方实施重用值tf$exp
消除冗余计算提高前传递效率
slog1pexm <-tf美联储自定义梯度高山市f=函数显示X){e <-tf美联储表达式(x)grad_fn <-函数显示y){底特律*高山市一号-一号/e级+e)}链表(tf美联储数学类美联储日志记录高山市一号+e),groad_fn}grad_log1pex函数显示X){带(tf美联储渐变图(b)%s%磁带 {磁带美联储手表显示(x)值 <-日志1(x)}磁带美联储渐变(值,x)}
##tf.Tensor(0.5,形状=(d类型=float32)
##tf.Tensor(1.0,形状=(d类型=float32)
性能显示
快速执行时自动卸载GPUs需要控制计算运行点时,可包入tf$device('/gpu:0')
块式(或CPU等效数):
趣味 <-函数显示设备设计阶梯=二百) {带(tf美联储设备化{serve/sx <-tf美联储随机美联储常态高山市形状=形状)For一内后继-len{(步数){tf美联储马图尔(xx)}}}微分标记居中市微分标记高山市趣味高山市/cpu:0)趣味高山市/gpu:0))
#单位:毫秒# exprmlq平均中位#fun('/cpu:0')111759611355501165.6269115722081195152913002236100#fune('/gpu:0')112.888127.164127.8525126.6708122.0415281.009100
A级tf$
对象可复制到别设备执行操作
x <-tf美联储随机美联储常态高山市形状=形状高山市10,10)x_gpu0 <-X级美联储国浦市(b)x_cpu <-X级美联储浦市(b)tf美联储马图尔X_Cpu,x_Cpu运行CPUtf美联储马图尔X_gpu0x_gpu0#运行GPU:0
基准参数
计算重模型类ResNet50GPU培训热执行性能可与GPU相似tf_函数
执行微小运算模型热码路径优化尚有待完成
工作函数
热执行能提高开发调试交互性,TensorFlow1.x样式图执行对分布式培训、性能优化和制作部署有优势透索Flow2.0介绍函数显示
s通过tf_函数
API更多信息见tf_函数向导