在CPU上,使用variable和placeholder效果差不多
在GPU上,使用variable要比每次都传placeholder快得多3:2
使用GPU的瓶颈主要在于GPU和内存之间的复制操作
"""
place_holder和variable速度对比
"""
import time
import numpy as np
import tensorflow as tf
M = 4096
N = 4096
K = 4096
A = np.random.random((N, M))
B = np.random.random((M, K))
a = tf.placeholder(dtype=tf.float32, shape=(None, M))
b = tf.placeholder(dtype=tf.float32, shape=(None, N))
c = tf.Variable(initial_value=A, dtype=tf.float32)
pro = a @ b
use_assign = c @ b
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
beg_time = time.time()
for i in range(5):
sess.run(use_assign, feed_dict={
b: B
})
print("use variable", time.time() - beg_time)
beg_time = time.time()
for i in range(5):
sess.run(pro, feed_dict={
a: A,
b: B
})
print("use placeholder", time.time() - beg_time)