为了节省一些内存,我需要在代码中添加mixed precision。具体地说,我尝试在https://github.com/nimRobotics/google-research/blob/master/ravens/train.py的第27行附近添加混合精度策略,以下是代码摘录
import argparse
import datetime
import os
import numpy as np
from ravens import agents
from ravens import Dataset
import tensorflow as tf
# tf.keras.mixed_precision.set_global_policy('mixed_float16')
# OR
# policy = tf.keras.mixed_precision.Policy('mixed_float16')
# mixed_precision.set_global_policy(policy)
这两种方法都会导致如下所示的属性错误,我使用的是带有TF 2.3.0的Google Colab
使用tf.keras.mixed_precision.set_global_policy('mixed_float16')
会导致
Traceback (most recent call last):
File "train.py", line 28, in <module>
tf.keras.mixed_precision.set_global_policy('mixed_float16')
AttributeError: module 'tensorflow.keras.mixed_precision' has no attribute 'set_global_policy'
使用
policy = tf.keras.mixed_precision.Policy('mixed_float16')
mixed_precision.set_global_policy(policy)
结果:
Traceback (most recent call last):
File "train.py", line 29, in <module>
policy = tf.keras.mixed_precision.Policy('mixed_float16')
AttributeError: module 'tensorflow.keras.mixed_precision' has no attribute 'Policy'
如有任何帮助或提示,我们将非常感谢!
发布于 2021-04-11 02:48:02
对于tf < 2.4
,您应该使用mixed precision的实验性包。
tf.keras.mixed_precision.experimental.Policy(
name, loss_scale='auto'
)
对于ex,在tf 2.3
中
policy = tf.keras.mixed_precision.experimental.Policy('mixed_float16')
tf.keras.mixed_precision.experimental.set_policy(policy)
在tf 2.4
中
tf.keras.mixed_precision.set_global_policy('mixed_float16')
在tf 2.4
中,这个特性不再是实验性的。
https://stackoverflow.com/questions/67037067
复制相似问题