我有兴趣测试我的神经网络(一个自动编码器,用作发生器+ CNN作为鉴别器),它使用3dconv/deconv层和新的Volta架构,并受益于混合精度训练.我使用CUDA 9和CudNN 7.0编译了Tensorflow 1.4的最新源代码,并将我的conv/deconv层使用的所有可训练变量转换为tf.float16.此外,我的所有输入和输出张量的大小都是8的倍数.
不幸的是,我没有看到这种配置有任何实质性的速度改进,训练时间与使用tf.float32大致相似.我的理解是,使用Volta架构和cuDNN 7.0,混合精度应该由TF自动检测,因此可以使用Tensor Core数学.我错了,或者我应该做些什么来启用它?我也尝试了TF1.5 nighlty版本,它似乎比我的自定义1.4更慢.
如果任何涉及Tensorflow的开发人员可以回答这个问题,我将不胜感激.
编辑:在与NVIDIA技术支持人员交谈之后,似乎在支持float16时,TF为简单的2D转换操作集成了混合精度加速,但现在不支持3D转换操作.