Сравнивая theano и скорость функции тензорного потока, как я могу сделать функцию тензорного потока быстрее? - PullRequest
0 голосов
/ 18 января 2020

ОС: 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?

1 Ответ

0 голосов
/ 18 января 2020

Оказывается, что Theano намного быстрее, чем Tensorflow, работает на процессоре. Tensorflow работает быстрее, чем Theano, если у вас несколько графических процессоров.

...