Низкое использование графического процессора тензор потока в Windows - PullRequest
0 голосов
/ 03 марта 2019

Я недавно установил tenorflow-gpu для Windows 10 и выполнил все шаги, включая CUDA 9.0 и cudadnn.Но скорость вычислений не увеличивается резко после запуска кода.

import numpy as np
import tensorflow as tf
tf.set_random_seed(777)

origin_data=np.load("train-imgs.npz")['arr_0']
answer_data=np.load("train-labels.npz")['arr_0']

d2_origin_data,answer_2d=[],[]

for i in range(len(origin_data)):
    d2_origin_data.append(origin_data[i].flatten())

answer_data=np.reshape(answer_data,(-1,1))

num_classes=10

input_feed=tf.placeholder(tf.float32,[None,len(d2_origin_data[0])])
answer_feed=tf.placeholder(tf.int32,[None,1])
w=tf.Variable(tf.random_normal([len(d2_origin_data[0]),num_classes]))
b=tf.Variable(tf.random_normal([num_classes]))

with tf.device('/gpu:1'):
    our_answer=tf.nn.softmax(tf.matmul(input_feed,w*0.001)+b)
    vec_answer=tf.one_hot(answer_feed,num_classes) 
    vec_answer=tf.reshape(vec_answer,[-1,num_classes]) #reduce dimension
    cost=tf.reduce_meantf.reduce_sum(vec_answer*tf.log(our_answer),axis=1))
train=tf.train.AdamOptimizer(learning_rate=0.1).minimize(cost)

sess = tf.Session(config=tf.ConfigProto( allow_soft_placement=True, log_device_placement=True))
sess.run(tf.global_variables_initializer())

for i in range(1000):        
    cost_val,acc,_=sess.run([cost,accuracy,train],feed_dict{input_feed:d2_origin_data,answer_feed:answer_data})
    if i%50==0:
        print(i,acc,cost_val)

Использование графического процессора:

gpu usage

Загрузка процессора:

cpu usage

Я использовал 62,8-мегабайтный файл train-imgs.npz и 160-килобайтный файл train-label.npz.Как показано выше, использование GPU колеблется и не превышает 90%.Я думаю, что тренировочный шаг все еще низок, так как я запускаю код с графическим процессором из-за низкого использования графического процессора.

Однако, когда я запускаю код cnn, который требует более сложных вычислений, мой ноутбук последовательно использует GPU более 60%.Я знал, что использование GPU зависит от размера сети, размера пакета и предварительной обработки.Как я должен сделать, чтобы последовательно увеличить использование GPU более чем на 90%?

...