Я не могу построить последний шаг 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))