当前位置: 首页 > 科技观察

TensorFlow2.8.0正式上线,修复了很多Bug,发布了50多个漏洞补丁

时间:2023-03-13 17:00:31 科技观察

最近TensorFlow正式发布了2.8.0正式版,距离上次更新2.7版本没多久,新版本提供了更多的bug修复和功能改进,此外新版本还发布了针对漏洞的补丁。对于TensorFlow2.8.0的上线,网友们也??纷纷感叹,这次的bug修复也太棒了!不过也有网友迫不及待地期待着TensorFlow3.0的到来,并表示TensorFlow1到TensorFlow2是一个巨大的飞跃。2到3未来会有哪些亮眼表现呢?众所周知,TensorFlow是由谷歌开发的。最初的版本可以追溯到2015年开源的TensorFlow0.1,之后稳步发展,拥有强大的用户群,成为最流行的深度学习框架。然而,用户在使用的过程中,也暴露出TensorFlow的不足,比如API稳定性不足、静态计算图编程复杂等。于是在TensorFlow2.0版本中,Google收录了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.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引擎;如果为真(默认),则保留原始行为;TrtGraphConverterV2提供了一个名为.summary()的新API。它显示了每个TRTEngineOp的形状和数据类型及其输入和输出,并提供了详细的版本摘要。tf.tpu.experimental.embedding:tf.tpu.experimental.embedding.FeatureConfig增加了一个额外的参数output_shape,可以指定特征输出激活的形状;tf.tpu.experimental.embedding.TPUEmbedding现在具有相同的tf.tpu。与experimental.embedding.serving_embedding_lookup功能相同,可以使用任意秩的稠密和稀疏张量。对于参差不齐的张量,虽然输入张量仍然是2阶,但现在可以通过在特征配置中指定输出形状或通过构建方法来激活2阶或更高阶。添加tf.config.experimental.enable_op_determinism,它使TensorFlow操作能够以性能为代价确定性地运行。替换TF_DETERMINISTIC_OPS环境变量。(自TF2.7起)将PluggableDevice支持添加到TensorFlowProfiler。错误修复和对tf.data的其他改进:优化parallel_batch现在是默认设置(如果用户未禁用),它允许并行复制批处理元素;添加了TensorSliceDataset以识别和处理文件输入。tf.lite:为JavaAPI的序列化添加GPU委托支持,在OpenCL可用时将初始化时间缩短90%;弃用Interpreter::SetNumThreads以支持InterpreterBuilder::SetNumThreads。tf.kerastf.random.Generator用于keras初始化和所有RNG代码;TextVectorization添加了额外的标准化和拆分模式:standardize="lower"转换为小写字母输入;standardize="string_punctuation"删除所有标点符号;Split="character"将在每个unicode字符上拆分。添加了GPU实现:(自2.7版起)tf.math.segment_mean(自2.7版起)tf.math.segment_prod(自2.7版起)tf.math.segment_sumTensorFlow在适用于GPU和CPU的Windows子系统Linux2中可用(又名WSL2)得到验证。此外,TensorFlow2.8.0还做了一些安全修复,包括修复了执行卷积运算时浮点除以0的问题:CVE-2022-21725;修复反量化形状推断中的整数溢出问题:CVE-2022-21727;修复了ConcatV2形状推断中的类型混淆:CVE-2022-21731等。更多信息请参考:https://github.com/tensorflow/tensorflow/releases/tag/v2.8.0?linkId=8031153