首页 > 编程知识 正文

tensorflow怎么用(tensorflowapi)

时间:2023-05-03 17:58:43 阅读:101532 作者:523

谷歌宣布推出TensorFlow 2.2.0,结束了对Python 2的支持。现在,新的TensorFlow Docker镜像版本只提供Python 3。

主要特点和改进

将字符串tmdyx的标量类型从std:string替换为tensorflow:tstring,这样可以使ABI更加稳定。

TF 2新的中央处理器/图形处理器/TPU剖析器。它提供设备和主机性能分析,包括输入管道和TF Ops。

建议使用pybind11将C函数导出到Python,尽量不要使用Swig,这是放弃SWIG进程的又一努力。

tf.distribute:

通过使用新添加的TF . keras . layers . experimental . syncbatchnormalization层,增加了对全局同步batchnormalization的支持。该层将同步参与同步训练的所有副本之间的批处理规范化统计信息。

使用TF。分发。实验性的。MultiworkermirrroredStrategy提高GPU多任务分布式训练的性能。

将英伟达NCCL更新到2.5.7-1,以获得更好的性能和性能调整。

支持减少浮动中的梯度16。

所有实验的支持减少了梯度压缩,允许使用反向路径计算进行重叠梯度聚合。

使用实验_run_v2方法。

添加对分发服务器的组合或支持。这应该有助于防止不必要的功能跟踪和内存泄漏。

tf.keras:

Model.fit的主要改进:

您可以通过重写Model.train_step对Model.fit使用自定义训练逻辑

轻松写出最新的训练周期,不用担心所有的功能(分发策略、回调、数据格式、循环逻辑等)。)那款适合你的手柄。

SavedModel现在使用自己的模型。_ saved _ model _ inputs _ specattr,而不是依赖不再为子类模型设置的Model.inputs和Model.input _ names。

生成器支持动态形状。

现在,SavedModel格式支持所有Keras内置层(包括指示器、预处理层和有状态RNN层)。

更新Keras批处理规范化层,在fused_batch_norm中使用运行平均值和平均计算。

tf.lite:

默认情况下,TFLite实验新转换器处于启用状态。

XLA

XLA现在可以在Windows上构建和运行。所有预建软件包都随XLA提供。

通过在中央处理器和图形处理器上使用“编译或抛出异常”语义,可以为tf.function启用XLA。

巨大的变化

tf.keras:

在tf.keras.applications中,“顶级”的名称已标准化为“预测”。如果您的代码依赖于图层的确切名称,这只是一个问题。

Huber损失函数已更新,与其他Keras损失保持一致。现在,在应用缩减函数之前,它计算每个样本损失的最后一个轴的平均值。

亲笔签名不再转换传递给tf.py_func、TF . py _ func和tf.py _ func的函数。

此版本不推荐使用XLA中央处理器和XLA图形处理器设备。

使用bazel添加cc _ experimental _ shared _ library的最低Bazel版本,将TF构建为2.0.0。

功能子类模型和功能子类模型的Keras编译/拟合行为已经统一。现在,模型属性(如metrics _ names)只能在训练/评估功能模型的实际数据后使用。指标现在将包括模型损失和产出损失。loss_functions属性已从模型中删除。这是一个未经许可的财产,不小心被公开了,现在已经被删除了。

新版本包含许多错误修复和其他更改:

tf.data:

Autotune_algorithm已从实验优化选项中删除。

TF核心:

不管当前的设备上下文如何,Tf.constant总是创建CPUtmdyx。

所需的张量句柄维护一个镜像列表,用于复制到本地或远程设备的任何副本。这可以避免op执行导致的任何冗余拷贝。

为了tf。张量和tf。变量,experimental _ ref()不再是实验性的,只能用作。ref()。

Pfor/vector d _ map:增加了56对

以上操作进行矢量化的支持。现在也支持向量化tf.cond。

设置尽可能多的局部形状,以使我们可以在聚集op的渐变impl中进行静态推断。

如果cond和body函数为无状态,则tf.while_loop的梯度发出Stateless。这允许多个梯度,而运维在分配策略下并行运行。

通过自动生成未使用且因此未缓存用于梯度函数的运算输入/输出列表,以更快的速度加快GradientTape。

在while_v2中支持back_prop = False,但将其标记为已弃用。

尝试在依赖于数据的控制流中使用“无”时,改进错误消息。

添加RaggedTensor.numpy()。

更新RaggedTensor .__ getitem__以保留统一尺寸并允许索引为统一尺寸。

更新tf.expand_dims以始终将新维度插入为不粗糙的维度。

当id参差不齐时,更新tf.embedding_lookup以使用partition_strategy和max_norm。

在tf.gather中允许batch_dims == rank(索引)。

在tf.print中添加对bfloat16的支持。

tf.distribute:

通过MultiWorkerMirroredStrategy支持具有可变长度输入功能的embedding_column。

tf.keras:

在tf.keras.optimizer.Optimizer.apply_gradients中添加了experimental_aggregate_gradients参数。这允许自定义梯度聚合并在自定义训练循环中处理聚合的梯度。

允许pathlib.Path路径用于通过Keras API加载模型。

tf.function / AutoGraph:

现在,可以在ReplicaContext.merge_call,Strategy.extended.update和Strategy.extended.update_non_slot中使用AutoGraph。

在功能中启用了对形状不变式的实验支持。有关其他信息,请参阅tf.autograph.experimental.set_loop_options的API文档。

现在,AutoGraph错误消息会排除与AutoGraph内部的API对应的帧。

改善tf.function输入参数的形状推断,以在TensorFlow 2.x中解锁更多Grappler优化。

通过允许并行进行资源读取并仅在写入时进行同步,来改进资源的自动控制依赖性管理。

修正tf.function中对experimental_run_v2的多个状态调用的执行顺序。

现在,您可以在tf.function中使用for循环遍历RaggedTensors。

tf.lite:

将tf.lite C推理API从实验版本迁移到lite / c。

添加选项以在Android 10上禁止NNAPI CPU /部分加速

TFLite Android AAR现在包括C标头,并且需要API才能使用本机代码中的TFLite。

重构委托和委托内核源,以允许在linter中使用。

如果指定了设备名称或禁用了NNAPI CPU回退,则将委派的操作限制为实际支持的操作。

TFLite现在通过降低到tf.div op支持tf.math.reciprocal1 op。

TFLite的解压缩操作现在支持布尔tmdyx输入。

微控制器和嵌入式代码从实验版移到了TensorFlow Lite文件夹中

检查较大的TFLitetmdyx。

使用C ++ 17修复GPU委托崩溃。

为TFLite strided_slice添加5D支持。

修复了DEPTH_TO_SPACE委托给NNAPI的错误,该错误导致op未被加速。

使用NNAPI委托在具有LSTM节点的模型上运行时修复分段错误

修复最大/最小运算的操作数为标量时的NNAPI委托失败。

当用于减少操作的Axis输入为标量时,修复NNAPI委托失败。

公开选项以限制将委派给NNAPI的分区的数量。

如果指定了目标加速器,请使用其功能级别来确定要委派的操作,而不是SDK版本。

tf.random:

各种随机数生成改进:

为默认的random_uniform添加快速路径

random_seed文档改进。

RandomBinomial广播样本形状并将其追加到左侧而不是右侧。

添加了tf.random.stateless_binomial,tf.random.stateless_gamma,tf.random.stateless_poisson

tf.random.stateless_uniform现在支持int类型的无限制采样。

数学和线性代数:

添加tf.linalg.LinearOperatorTridiag。

添加LinearOperatorBlockLowerTriangular

将广播支持添加到tf.linalg.triangular_solve#

添加tf.math.sobol_sample op。

添加tf.math.xlog1py。

添加tf.math.special。{dawsn,expi,fresnel_cos,fresnel_sin,spence}。

将修改的离散余弦变换(MDCT)及其反函数添加到tf.signal。

TPU增强功能:

重构TpuClusterResolver以将共享逻辑移动到单独的pip包中。

支持从Cloud TPU客户端配置TPU软件版本。

允许TPU嵌入权重衰减因子乘以学习率。

XLA支持:

将独立的XLA AOT运行时目标+相关的.cc源添加到pip包中。

将内存对齐检查添加到32位ARM上的MemoryAllocation :: MemoryAllocation()。这样可以确保确定性的提前退出,而不是以后很难调试总线错误。

saved_model_cli aot_compile_cpu允许您将保存的模型编译为XLA头文件和目标文件,并将其包括在C ++程序中。

为XLA启用Igamma,Igammac。

确定性Op功能:

当环境变量TF_DETERMINISTIC_OPS设置为“ true”或“ 1”时,XLA减少发射器是确定性的。这扩展了确定性tf.nn.bias_add反向支持功能(因此也扩展了Keras层中的偏置加法的确定性反向支持),使其在启用XLA JIT兼容时也包括在内。

解决了在CUDA GPU上运行时以及环境变量TF_DETERMINSTIC_OPS或环境变量TF_CUDNN_DETERMINISTIC设置为“ true”或“ 1”时的问题,其中某些层配置导致出现异常,并显示消息“没有算法起作用!”。

跟踪和调试:

将源名称,目标名称添加到_send跟踪记录中,以便于调试。

将traceme事件添加到fastpathexecute。

其他:

解决了多标签AUC的AUC.reset_states问题#35852

修复TF升级脚本,以在出现解析错误并且输出模式就位时不删除文件。

将tensorflow / core:framework / * _ pyclif规则移动到tensorflow / core / framework:* _ pyclif。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。