TensorFlow和PyTorch发布最新版本,有什么变化?

TensorFlow和PyTorch发布最新版本,有什么变化?
Tensorflow
主要特征和改进
•在Tensorflow库中添加封装评估量。所添加的评估量列表如下:
1. 深度神经⽹络分类器(DNN Classifier)
2. 深度神经⽹络回归量(DNN Regressor)
3. 线性分类器(Linear Classifier)
4. 线性回归量(Linea rRegressor)
5. 深度神经⽹络线性组合分类器(DNN Linear Combined Classifier)
6. 深度神经⽹络线性组合回归量(DNN Linear Combined Regressor)
•我们所有预构建的⼆进制⽂件都是⽤cuDNN 6构建的。
•import tensorflow现在运⾏要快得多。
•将⽂件缓存添加到GCS⽂件系统中,其中⽂件内容具有可配置的最⼤失效期(configurable max staleness)。这允许跨关闭/开放边界缓存⽂件内容。
•将轴参数(axis parameter)添加到tf.gather中。
•向tf.pad中添加⼀个constant_values关键字参数。
•添加Dataset.interleave转换。
•添加ConcatenateDataset以连接两个数据集。
•在TensorFlow中为Poets训练脚本添加Mobilenet 的⽀持。
•将块缓存添加到具有可配置块⼤⼩和计数的GCS⽂件系统中。
•添加SinhArcSinh Bijector。
•添加Dataset.list_files API。
•为云TPU引进新的操作和Python绑定。
•添加与tensorflow-android相对称的TensorFlow-iOS CocoaPod。
•引⼊集解析器(Cluster Resolver)的基本实现。
•统⼀TensorShape和PartialTensorShape的内存表⽰。因此,张量现在最多有254个维度,⽽不是255个。
•更改对LIBXSMM的引⽤版本,使⽤1.8.1版本。
•TensorFlow调试器(tfdbg):
•TensorFlow调试器(tfdbg):
1. 使⽤-s标志显⽰数字张量值的概要,⽤命令print_tensor或pt。
2. 使⽤curses UI中的print_feed或pf命令和可点击链接显⽰Feed值。
3. op级别和Python源代码⾏级别的运⾏分析器(Runtime profiler)使⽤run -p命令。
•统计分布库tf.distributions的初始版本。
•⼀元tf.where和p_k的GPU内核和速度改进。
•将单调注意包装器(Monotonic Attention wrappers)添加到tf.contrib.seq2seq。
•添加tf.contrib.signal,⼀个⽤于信号处理原语的库。
•添加sampler,它包含CPU和GPU操作,⽤于区分图像的重采样。
API的突破性更改
•当tf.RewriterConfig在1.2版本的候选版本中可⽤(它从来没有在实际版本中应⽤)后将其从Python API中删除,图重写(Graph rewriting)仍然可⽤,只是不像tf.RewriterConfig那样。⽽是添加显式导⼊。
•打破对tf.contrib.data.Dataset API期望有⼀个嵌套结构的更改。列表现在被隐式转换为tf.Tensor。你可能需要在现有代码中将列表的⽤法更改为元组。此外,现在还⽀持程序具有嵌套结构。
contrib API的更改
•添加
•当他们看到⼩于或等于1个单位的权重时,ics {streaming_covariance,streaming_pearson_correlation}修改为返回nan。
•在contrib中添加时间序列模型。有关详细信息,请参阅contrib / timeseries / README.md。
•在tensorflow / contrib / lite / schema.fbs中添加FULLY_CONNECTED操作。
错误修正以及其他更改
•在python中使⽤int64 Tensor index进⾏切⽚时,修复strides和begin 类型失配问题。
•改进卷积padding⽂件。
•添加标签常量,gpu,以显⽰基于GPU⽀持的图形。
•saved_model.utils现在显然是⽀持SparseTensors的。
•⾮最⼤抑制(non-max suppression)更为有效的实现。
•除了对在线L2的⽀持之外,还增加了对从收缩型L2到FtrlOptimizer的⽀持。
•固定矩计算中的负⽅差。
•拓展UniqueOp基准测试,以涵盖更多的collision案例。
•提⾼Mac上GCS⽂件系统的稳定性。
•在HloCostAnalysis中添加时间评估。
•修复Estimator中的错误,即构造函数中的参数不是对⽤户提供参数的深度复制。这个错误⽆意中使得⽤户在创建Estimator之后突变参数,从⽽导致潜在的未定义的⾏为。
•在store中添加了⽆检查保存路径。
•在device_mgr中以旧名称注册设备,以便轻松转换到集规范传播(cluster spec-propagated)的配置。
•将向量指数添加到分布中。
•添加⼀个具有bitwise_and,bitwise_or,bitwise_xor和invert函数的按位模块(bitwise module)。
•添加固定⽹格的ODE集成例程。
•允许将边界传递到scipy最优化接⼝。
•将fft_length参数修正为tf.spectral.rfft&tf.spectral.irfft。
•使⽤“预测”⽅法导出的模型签名将不再使其输⼊和输出密钥被静默地忽略,且被重写为“输⼊”和“输出”。如果⼀个模型在1.2版本之前以不同的名称导出,并且现在使⽤tensorflow / serving,它将接受使⽤'inputs'和'outputs'的请求。从1.2版本开始,这样的模型将接受导出时指定的密钥。因此,使⽤“输⼊”和“输出”的推理请求可能会开始有所失败。为了解决这个问题,请更新任何推理客户端,以发送具有训练器代码所使⽤的实际输⼊和输出密钥的请求,或者相反地,更新训练器代码以分别命名输⼊和输出张量为'inputs'和 'outputs'。使⽤“分类”和“回归”⽅法的签名不会受此更改的影响;它们将继续像以前⼀样规范其输⼊和输出键。
•将内存中的缓存添加到Dataset API中。
•将数据集迭代器中的默认end_of_sequence变量设置为false。
• [Performance]通过使⽤nn.bias_add将use_bias = True设置为2x,可以提⾼2d的性能。
•更新iOS⽰例以使⽤CocoaPods,并移动到tensorflow / examples / ios中。
•在tf.summary操作中添加⼀个family =attribute,以允许控制Tensorboard中⽤于组织摘要的选项卡名称。
•当配置GPU时,如果在configure脚本中存在请求,则可根据请求⾃动构建GPU,⽽不需要--config = cuda。
•修复CPU / GPU多项式中⼩概率的不正确采样。
•在session上添加⼀个list_devices()API以列出集中的设备。此外,此更改增加了设备列表中的主要API以⽀持指定session。
•允许使⽤过参数化的可分离卷积。
•TensorForest多重回归错误修复。
•框架现在⽀持armv7,现在可显⽰正确的页⾯。
•为CocoaPods创建iOS框架的脚本。
•为CocoaPods创建iOS框架的脚本。
•现在,TensorFlow的Android版本已经被推到了jcenter,以便更⽅便地集成到应⽤中。
•TensorFlow调试器(tfdbg):
1.修复了⼀个阻⽌tfdbg使⽤多GPU设置的错误。
2.修复了⼀个阻⽌tfdbg使⽤tf.Session.make_callable的错误。
Pytorch0.2.0
这⾥是PyTorch的下⼀个主要版本,恰恰赶上了国际机器学习⼤会(ICML)。
我们引⼊了期待已久的功能,如⼴播、⾼级索引、⾼阶梯度梯度,最后是分布式PyTorch。
由于引⼊了⼴播,某些可⼴播情况的代码⾏为与0.1.12中的⾏为不同。这可能会导致你现有代码中出现错误。我们在“重要破损和解决⽅法”部分中提供了轻松识别此模糊代码的⽅法。
⽬录:
•张量⼴播(numpy样式)
•张量和变量的⾼级索引
•⾼阶梯度
•分布式PyTorch(多节点训练等)
•神经⽹络层和特征:SpatialTransformers、WeightNorm、EmbeddingBag等
•torch 和 autograd的新应⽤:矩阵相乘、逆矩阵等
•更容易调试,更好的错误信息
•Bug修复
•重要的破损和解决⽅法
张量⼴播(numpy样式)
简⽽⾔之,如果PyTorch操作⽀持⼴播,则其张量参数可以⾃动扩展为相同⼤⼩(不复制数据)。
PyTorch⼴播语义密切跟随numpy式⼴播。如果你熟悉数字⼴播,可以按照之前流程执⾏。
⼀般语义学
如果以下规则成⽴,则两个张量是“可⼴播的”:
•每个张量具有⾄少⼀个维度。
•当从尺⼨⼤⼩开始迭代时,从尾部维度开始,尺⼨⼤⼩必须相等,其中⼀个为1,或其中⼀个不存在。
例如:
如果两个张量x、y是“可⼴播”的,则所得到的张量⼤⼩计算如下:
•如果x和y的维数不相等,则将尺⼨缩⼩到尺⼨较⼩的张量的前端,以使其长度相等。
•然后,对于每个维度⼤⼩,⽣成的维度⼤⼩是沿该维度的x和y的⼤⼩的最⼤值。
例如:
# can line up trailing dimensions to make reading easier
>>> x=torch.FloatTensor(5,1,4,1)
>>> y=torch.FloatTensor( 3,1,1)
>>> (x+y).size()
torch.Size([5, 3, 4, 1])
# error case
>>> x=torch.FloatTensor(5,2,4,1)
>>> y=torch.FloatTensor( 3,1,1)
>>> (x+y).size()
RuntimeError: The size of tensor a (2) must match the size of tensor b (3) at non-singleton dimension 1
更多细节可以在PyTorch⽂档⽹站上到。此外,每个torch函数列出了其⽂档中的⼴播语义。
张量和变量的⾼级索引
PyTorch现在⽀持NumPy样式的⾼级索引的⼦集。这允许⽤户使⽤相同的[]-样式操作在Tensor的每个维度上选择任意索引,包括不相邻的索引和重复的索引。这使得索引策略更灵活,⽽不需要调⽤PyTorch的索引[Select, Add, ...]函数。
我们来看⼀些例⼦:
x = torch.Tensor(5, 5, 5)
纯整数组索引—在每个维度上指定任意索引
x[[1, 2], [3, 2], [1, 0]]--> yields a 2-element Tensor (x[1][3][1], x[2][2][0])
也⽀持⼴播、副本
x[[2, 3, 2], [0], [1]]--> yields a 3-element Tensor (x[2][0][1], x[3][0][1], x[2][0][1])
允许任意索引器形状
x[[[1, 0], [0, 1]], [0], [1]].shape--> yields a 2x2 Tensor [[x[1][0][1], x[0][0][1]],
[x[0][0][1], x[1][0][1]]]

本文发布于:2024-09-23 04:34:06,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/88893.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:添加   版本   代码   参数   错误
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议