我有一个非常简单的张量流程序来计算wav文件的谱图:
# load a wav file into audio_data
audio_data = tf.convert_to_tensor(audio_data, dtype=tf.float32)
stft = tf.contrib.signal.stft(audio_data, frame_length=255, frame_step=1)
mag = tf.abs(stft)
init = tf.global_variables_initializer()
with tf.Session(config=tf.ConfigProto(log_device_placement=False)) as sess:
sess.run(init)
mag = sess.run(mag)
tf.contrib.signal.stft
的文档说它是用兼容GPU的操作实现的,我看到设备放置日志说程序中的每个操作都放在我的gpu上。但是,当我运行此操作时,我的 cpu 最大值为100%,而我的 gpu 完全空闲。我也尝试在stft行上方添加一个明确的with tf.device('/gpu:0'):
,但无济于事。我需要做什么才能在我的gpu上运行?这可能是op的错误吗?其他gpu操作,例如卷积操作,似乎与我的gpu工作得很好,当我使用它时,我可以完全100%使用它。
我在Linux Ubuntu,Tensorflow 1.4.1(从源代码编译),我正在使用CUDA 9.0和cuDNN 7.0。