Какова правильная реализация Keras этого кода Tensorflow для сверточно-инвариантного сверточного слоя? - PullRequest
0 голосов
/ 30 декабря 2018

Какая правильная реализация кода, подобная этой: импортировать тензор потока как tf

# The clockwise shift-1 rotation permutation.
permutation = [[1, 0], [0, 0], [0, 1], [2, 0], [1, 1], [0, 2], [2, 1], [2, 
2], [1, 2]]


def shift_rotate(w, shift=1):
  shape = w.get_shape()
  for i in range(shift):
     w = tf.reshape(tf.gather_nd(w, permutation), shape)
  return w


def conv2d(x, W, **kwargs):
   # Determine all 7 rotations of w.
   w = W
   w_rot = [w]
   for i in range(7):
      w = shift_rotate(w)
      w_rot.append(w)

   # Convolve with all 8 rotations and stack.
   outputs = tf.stack([tf.nn.conv2d(x, w_i, **kwargs) for w_i in w_rot])

   # Max filter activation across rotations.
   output = tf.reduce_max(outputs, 0)
   return output 

Код получен отсюда: https://raghakot.github.io/2017/01/09/Baking-rotational-invariance-into-a-neuron.html

Я использую реализацию тензор потока, ноне могу найти хороший учебник о том, как писать слои Keras.Я не уверен, что параметры x и W будут представлены в кератах.

Большое спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...