ОС: windows 10 Процессор: Core i7-6700
python 3.7 с использованием anaconda
theano версии 1.0.4 с использованием: conda install theano pygpu
Тензор потока версии 2.1.0, установленный с помощью: pip install tenorflow
Оба работают с использованием процессора
Я переписываю часть своего кода из theano в тензор потока и обнаруживаю, что производительность в тензор потока не так быстро, как theano, поэтому я должен пропустить что-то, из-за чего код тензорного потока будет медленнее.
ниже приведен пример кода:
import numpy as np
import theano
import theano.tensor as T
from theano import function
import tensorflow as tf
from time import time
#define tensorflow function
@tf.function
def tf_mean(data):
return tf.math.reduce_mean(data, axis=0)
#define theano function
tdata = T.dmatrix('tdata')
tmean = T.mean(tdata, axis=0)
theano_mean = function([tdata], tmean)
if __name__ == '__main__':
np.random.seed(1234)
randomdata = np.random.random((3000,10))
#run first time to warm up
check_th = theano_mean(randomdata)
check_tf = tf_mean(randomdata)
# run each 10000 times
start = time()
for i in range(10000):
theano_mean(randomdata)
thtime = time()-start
print('theano', thtime )
start = time()
for i in range(10000):
tf_mean(randomdata)
tftime = time()-start
print('tensorflow', tftime )
print('ratio', tftime / thtime)
output: theano 0.4887216091156006
тензор потока 2,4310362339019775
коэффициент 4,9742761289013275
Таким образом, Theano примерно в 5 раз быстрее тензорного потока, чем кажется. Как я могу ускорить выполнение кода с тензорным потоком хотя бы наравне с theano?