Tensorflowの勾配非同期更新例


背景:
まず応用について説明します。私達はネットトレーニングをする時に、一つのバッtSize設定があります。つまり一つのバッtch一つのバッtchの更新勾配があります。このバッtchがある前提はこのバッtchの中のすべての写真の大きさが一致しています。もし一つのネットが画像の入力に対して要求がないなら、任意のサイズのものでもいいですが、一つのバッtchの更新勾配はどうすればいいですか?
操作は以下の通りです
最初の計算勾配:

#     
Optimizer = tf.train.GradientDescentOptimizer(1)
gradient = Optimizer.compute_gradients(loss)  #            
grads_holder = [(tf.placeholder(tf.float32, shape=g.get_shape()), v) for (g, v) in gradient]#           
optm = Optimizer.apply_gradients(grads_holder) #       

#      
sess = tf.Session()
init = tf.global_variables_initializer()
sess.run(init)

#       
grads = []         #                    
for i in range(batchsize): # batchsize     
  x_i = ...       #   
  y_real = ...      #   
  grad_i = sess.run(gradient, feed_dict={inputs: x_i, outputs: y_real}) #    
  grads.append(grad_i)  #     
#             ,batchsize       
grads_sum = {}     
#                       
for i in range(len(grads_holder)): 
  k = grads_holder[i][0] #       
  #              ,        ,        batchsize
  grads_sum[k] = sum([g[i][0] for g in grads]) 
#       
sess.run(optm,feed_dict=grads_sum) 
以上のTensorflowの勾配非同期更新例は、小編集が皆さんに提供した内容の全部を共有しています。参考にしていただければと思います。どうぞよろしくお願いします。