tensorflow - 张量流 2.0.0-alpha0 版本中废弃函数的问题
问题描述
众所周知,新版本的张量流现已推出。它们提供了一个工具,可以轻松地使用tf_upgrade_v2 --infile original_code.py --outfile upgraded_code.py
. 升级代码后,它会生成一个txt report
通知你所有的变化,除了需要特别注意的问题,即已经弃用的功能,没有进一步的替代品。
所以不幸的是,我的代码有几个不推荐使用的功能,我正在寻找它的替代品,但仍然没有成功。如果有人可以向我建议任何替代品,我将不胜感激。
1-
L1 = tf.compat.v1.get_variable('L1', shape=[feature_dim, feature_dim],
initializer=tf.contrib.layers.xavier_initializer(), regularizer = tf.contrib.layers.l2_regularizer(wd), use_resource=False)
所以 xavier_initializer 和 l2_regularizer 都被弃用了。
2-image = tf.contrib.image.rotate(image, angles=rnd_rot_angle)
3-transform = tf.contrib.image.matrices_to_flat_transforms(tf.linalg.inv(afine_tf.params))
4-image = tf.contrib.image.transform(image, transform)
5- python 日志功能不再在终端上显示任何日志。
import tenosflow
import logging
logging.basicConfig(level=logging.INFO)
logging.info('It doens't print this')
解决方案
对于正则化器和初始化器,您可以分别使用tf.keras.regularizers.l2
和tf.initializers.GlorotNormal
(或 GlorotUniform)。后者本质上是 Xavier 初始化的另一个名称。至于 contrib 模块,它已从 TF 2.0 中完全删除,并且许多功能,至少目前还没有直接替代。但是您可以tf.py_function
在输入管道中使用。它可以将任何 python 逻辑包装为 TensorFlow op。
def custom_resize(image):
return np.resize(image, (100,100))
def parse_func(image, label):
return tf.py_function(custom_resize, inp=[image], Tout=[tf.float32])
...
dataset = dataset.map(parse_func)
所以基本上我们可以定义任何函数,它将接受 numpy 数组,而不是张量,并将其应用于数据集中的任何张量。
推荐阅读
- c# - Laravel 和 C# 应用程序 API 问题
- javascript - 我想从一个 onclick 调用两个函数
- vba - 运行时错误“5852”请求的对象不可用。.Destination = wdSendToNewDocument 的问题
- powershell - 在 powershell 脚本中打印 $ 符号
- python - 如何在 MacOS 上使用 pycairo 作为 tox 的依赖项来测试包?
- python - 傅里叶位移定理 python
- r - 计算四个最近网格点的加权平均值
- javascript - 打字稿、泛型和重载
- javascript - 反应多个状态重置
- java - 有没有办法在 postresql 中复制 java UUID.nameUUIDFromBytes(byte[] name) 功能?