Как построить последний слой свертки, чтобы использовать регрессию? - PullRequest
0 голосов
/ 20 ноября 2018

Я не могу построить последний шаг CNN, потому что мои X данные имеют динамическую форму (batch_size, ?, 8, 11)

Как я могу уменьшить эту матрицу до такой же формы Y (batch_size, 1), чтобы построить гипотезу?

Это краткий пример моего дела.

import tensorflow as tf
import numpy as np

x_data = []
for i in [8, 8, 4, 6, 11]:
    batch_x = np.random.normal(size=[i, 8, 11])
    x_data.append(batch_x)

y_data = [[7], [2], [5], [4], [5]]
x_data = np.array(x_data)    # (5, ?, 8, 11)
y_data = np.array(y_data)    # (5, 1)

X = tf.placeholder(tf.float32, [None, None, 8, 11])   # shape = (?, ?, 8, 11)
Y = tf.placeholder(tf.float32, [None, 1])             # shape = (?, 1)

...
Convolutions..
...

W4 = tf.Variable(tf.random_normal([3, 3, 64, 128], stddev=0.01))
h4 = tf.nn.conv2d(h3, W4, strides=[1, 1, 1, 1], padding='SAME')

print(h4.shape)
>>> (?, ?, 3, 128)
print(Y.shape)
>>> (?, 1)

fc = h4 * some magic here..

hypothesis = fc * W + b
cost = tf.reduce_mean(tf.square(hypothesis - Y))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...