当前位置:网站首页>Tensor flow 踩坑记
Tensor flow 踩坑记
2022-08-09 23:32:00 【张春成】
Tensor flow 踩坑记
Tensor flow 删除了 contrib 模块,这是万恶之源。
万恶之源
Tensorflow 是著名的深度学习计算软件,先不说它与 CUDA 和 GPU 驱动之间超强的、说不清道不明的依赖关系,单说它在诞生不久就进行的重大改版
它改了什么呢?
改了很多 API,也就说同一件事情、或者同一个计算逻辑,使用的语句是不一样的; 删除了 contrib 模块,将该模块的功能转移到了其他模块中,这个就很欠打。
API的改动
总的来说,API的改动是使软件更加适于使用而自然发生的。
# TF1.x
outputs = session.run(f(placeholder), feed_dict={placeholder: input})
# TF2
outputs = f(input)
虽然我更喜欢1版本的语句,因为它的含义更加明确。这句话的意思是,f代表某个网络的前向计算,网络本身是结构和参数的集合,它本身不能计算,是程序创建的session通过它完成了计算工作。但是为了语句更加简洁,改到2版本也无可厚非。
然而,这种改动吧,不是说不让你改。而是说这种改动没有什么必要,更加没必要的是这些改动会“摒弃”掉之前的写法。
也就是说,如果你用 TF1 撰写了程序,迁移到 TF2 时就需要对这些东西进行无意义的改写。这种改动有点像 Python 2 到 Python 3 中 print 语句的改动
# Python 2
print 'abc'
# Python 3
print('abc')
有意义吗?不能说没有;有必要吗?不好说。
不过,好在有 2to3 这样的专门处理升级程序的小工具,虽然可能导致一堆新的 BUG ,但聊胜于无。
后来TF 官方还专门推出了如下这样欲盖弥彰的方法,来“兼容”之前版本的程序。
# Compat TF v1
import tensorflow.compat.v1 as tf # pylint: disable=import-error
tf.disable_v2_behavior()
Contrib的删除
如果说API的改版还有办法自动化兼容的话。contrib的删除就让人啼笑皆非。
先说说contrib是个啥,它其实相当于是 TF 官方提供的插件接口。成千上万的程序开发者能够通过这个接口,给TF添加各种各样的个性化功能。或者这样说,这个接口就是随软件附带的TF社区。
久而久之,这个接口开始大放异彩,上面的功能极大的推动了TF的发展,甚至开始覆盖TF本身的,使用起来不那么方便的特性。
然而,在TF改版的过程中,它被砍掉了。这就很恶心人。因为在新版本的TF中,所有
tensorflow.contrib
的功能都没有了,这个模块也没有了。之前contrib社区有多繁荣,改版之后的TF就有多难用。而想要用新版的TF运行之前版本的程序时,软件版本迁移需要做的工作就有多繁琐。
虽然,TF官方承诺将contrib中的功能都迁移到软件的其他模块中,但是这样做只是减轻了这些模块的开发成本,并没有丝毫减轻迁移时面临的困难。
雪上加霜的是,官方的迁移说明是动态的线上内容,出于某个众所周知的原因,这个文档不怎么容易刷出来。所以本文将对 TF 使用过程中,涉及版本转换的内容进行长期的、简要的记录。既有助于自己,也希望能帮到大家。
有一说一
arg_scope

TF2.0中从tensorflow.contrib.framework.python.ops导入arg_scope的等价物? - 问答 - 腾讯云开发者社区-腾讯云 (tencent.com)
load_variable

边栏推荐
猜你喜欢
随机推荐
Redis 大 key 要如何处理?
deepstream学习笔记(三):deepstream-imagedata-multistream解析与接入适配yolov5模型测试
今日睡眠质量记录61分
RebatMq消息中间件(一) 各个中间件介绍
nfs配置
AUTOCAD——形位公差如何标注、CAD打断于点的操作
基于ABP的AppUser对象扩展
[SSH]如何敲一条线
JSP简介
Alibaba Cloud SMS Service Activation
New window Display Agreement
ES6 Beginner to Mastery #15: Generator Usage
源码编译安装LAMP和LNMP
Description of AirFlow
Spark基础【RDD单Value类型转换算子】
CST Studio Suite 2021软件安装包和安装教程
下载markdown软件Obsidian(解决官网下载速度慢)
WPF DataGrid using data templates
Digital wallets, red sea ecological rapid introduction of small programs can help capture device entry wisdom
MATLB|And her ups and downs and finally reached the peak of life [Romantic Journey]