Могу ли я сделать увеличение данных с помощью размытия по Гауссу на моем tf.Dataset, используя мой графический процессор? - PullRequest
0 голосов
/ 16 апреля 2019

Я хотел бы изменить мой старый конвейер на основе очередей на новый API набора данных в тензорном потоке из соображений производительности.Однако, как только мой код изменился, он работает за 8 часов вместо 2.

Использование моего графического процессора составляло около 30/40%, а сейчас оно составляет от 0 до 6%.

Я обнаружиллиния, которая делает его таким медленным, и это когда я применяю размытие по Гауссу к моему набору данных:

def gaussian_blur(imgs,lbls):
   imgs = tf.nn.conv2d(imgs,k_conv,
                                   strides=[1, 1, 1, 1], 
                                   padding='SAME',
                                   data_format='NHWC'
                                   )
   return imgs, lbls

ds = ds.map(gaussian_blur)

С моим старым конвейером, основанным на очереди, эта линия почти не замедляет мою программу.

Я думаю, это потому, что эта строка раньше работала на GPU, но новый API набора данных заставляет ее работать на CPU, который работает намного медленнее и уже используется на 100%.

Есть ли у вас какие-либо идеи о том, как можноЯ применяю размытие по Гауссу без снижения производительности?Должен ли я сохранить мой старый конвейер на основе очереди?

...