Привет Артур,

Я пытаюсь воспроизвести ваш код для OpenAI, в частности для Breakout. Однако я продолжаю получать сообщение об ошибке, когда пытаюсь разделить последний сверточный слой на потоки Target и Value.

Мой код выглядит так:

biasInit = tf.constant_initializer(0.1, dtype=tf.float32)
conv1 = tf.contrib.layers.convolution2d(inputs=inputs, num_outputs=32, kernel_size=8, step=2, padding=”VALID”, bias_initializer=biasInit)
conv2 = tf.contrib.layers.convolution2d(inputs=conv1, num_outputs=64, kernel_size=4, stride=2, padding=”VALID”,bias_initializer=biasInit)
conv3 = tf.contrib.layers.convolution2d(inputs=conv2, num_outputs=64, kernel_size=3, step=1, padding=”VALID”,bias_initializer=biasInit)
conv4 = tf.contrib.layers.convolution2d(inputs= conv3, num_outputs=512, kernel_size=7, step=1, padding=”VALID”,bias_initializer=biasInit)

streamAC,streamVC = tf.split(conv4,2,3)
streamA = tf.contrib.layers.flatten(streamAC)
streamV = tf.contrib.layers.flatten(streamVC)
AW = tf.Variable(tf.random_normal([512//2, 6]))
VW = tf.Variable(tf.random_normal([512//2, 6]))
Преимущество = tf.matmul(streamA,AW)
Value = tf.matmul(streamV, VW)
outputs = Value + tf.subtract(Advantage, tf.reduce_mean(Advantage, axis=1,keep_dims=True) )

предсказанное_действие = tf.argmax (выходные данные, 1)

И ошибка, которую я получаю:

ValueError: Форма должна иметь ранг не ниже 4, но ранг 3 для «разделения» (оп: «Разделить») с вводом

Я был бы признателен за любую помощь, которую вы можете мне предложить!

Ваше здоровье,

Мара