TensorFlow 2.8.0正式上线,修复众多Bug,发布50多个漏洞补丁

机器之心报道
编辑:陈萍
tensorflow2.8.0来了 。
近日TensorFlow官方发布了2.8.0正式版 , 距离上次2.7版本的更新过去没多久 , 新版本提供了更多的bug修复和功能改进 , 此外新版本还针对漏洞发布了补丁 。
TensorFlow 2.8.0正式上线,修复众多Bug,发布50多个漏洞补丁
文章图片
对于TensorFlow2.8.0的上线 , 网友也纷纷感叹 , 这次的Bug修复也太棒了!
TensorFlow 2.8.0正式上线,修复众多Bug,发布50多个漏洞补丁
文章图片
不过也有网友已经迫不及待的期待TensorFlow3.0的到来 , 并表示TensorFlow1到TensorFlow2是一个巨大的飞跃 , 将来2到3又会有哪些亮眼的表现呢?
TensorFlow 2.8.0正式上线,修复众多Bug,发布50多个漏洞补丁
文章图片
众所周知 , TensorFlow由谷歌开发 , 最初版本可追溯到2015年开源的TensorFlow0.1 , 之后发展稳定 , 拥有强大的用户群体 , 成为最受欢迎的深度学习框架 。 但是用户在使用时 , 也暴露了TensorFlow缺点 , 例如API稳定性不足、静态计算图编程复杂等缺陷 。 因此在TensorFlow2.0版本 , 谷歌将Keras纳入进来 , 成为tf.keras , 到目前为止 , TensorFlow已经更新到2.8版本 , 那么新版本有哪些重要的改进呢?
TensorFlow2.8.0主要功能和改进
在tf.lite中 , 增加了TFLite内置op支持以下功能:
tf.raw_ops.Bucketizeop可在CPU上操作;tf.whereop可用于数据类型tf.int32、tf.uint32、tf.int8、tf.uint8、tf.int64;tf.random.normalop用于在CPU上输出数据类型tf.float32;tf.random.uniformop用于在CPU上输出数据类型tf.float32;f.random.categoricalop用于在CPU上的输出数据类型tf.int64 。 【TensorFlow 2.8.0正式上线,修复众多Bug,发布50多个漏洞补丁】tensorflow.experimental.tensorrt:
Conversion_params在TrtGraphConverterV2中被弃用 , 现在可以支持参数max_workspace_size_bytes、precision_mode、minimum_segment_size、maximum_cached_engines、use_calibration和allow_build_at_runtime;在TrtGraphConverterV2中的.save()函数中添加了一个名为save_GPU_specific_engines的新参数 。 当为False时 , .save()函数不会保存任何已构建的TRT引擎;如果为True(默认) , 则保留原始行为;TrtGraphConverterV2提供了一个名为.summary()的新API 。 它显示了每个TRTEngineOp及其输入和输出的形状和dtype , 并提供了详细版本摘要 。tf.tpu.experimental.embedding:
tf.tpu.experimental.embedding.FeatureConfig增加了一个额外的参数output_shape , 它可以指定特征输出激活的形状;tf.tpu.experimental.embedding.TPUEmbedding现在具有与tf.tpu.experimental.embedding.serving_embedding_lookup相同的功能 , 它可以使用任意等级密集和稀疏的张量 。 对于不规则张量 , 尽管输入张量仍然是2级 , 但现在可以通过在特征配置中指定输出形状或通过build方法来激活2级或更高级别 。添加tf.config.experimental.enable_op_determinism , 这使得TensorFlowops以性能为代价可以确定性地运行 。 替换TF_DETERMINISTIC_OPS环境变量 。
(自TF2.7起)向TensorFlowProfiler添加PluggableDevice支持 。
Bug修复和其他改进
tf.data:
如果用户未禁用 , 现在优化parallel_batch现在成为默认值 , 这样可以并行复制批处理元素;添加了TensorSliceDataset , 用于识别和处理文件输入 。tf.lite:
为JavaAPI的序列化添加GPU委托支持 , 当OpenCL可用时 , 这将初始化时间提高了90%;弃用Interpreter::SetNumThreads , 支持InterpreterBuilder::SetNumThreads 。tf.keras
tf.random.Generator用于keras初始化和所有的RNG代码;TextVectorization增加了额外的standardize和split模式:standardize=''lower''转化为小写字母输入;standardize=''string_punctuation''删除所有标点符号;Split=''character''将对每个unicode字符进行拆分 。增加GPU实现: