Я пытаюсь создать базовую модель нелинейной регрессии, которая будет предсказывать индекс доходности компаний в FTSE350.
Я не уверен, как должен выглядеть мой член смещения с точки зрения размеров и правильно ли я использую его в методе вычислений:
w1 = tf.Variable(tf.truncated_normal([4, 10], mean=0.0, stddev=1.0, dtype=tf.float64))
b1 = tf.Variable(tf.constant(0.1, shape=[4,10], dtype = tf.float64))
w2 = tf.Variable(tf.truncated_normal([10, 1], mean=0.0, stddev=1.0, dtype=tf.float64))
b2 = tf.Variable(tf.constant(0.1, shape=[1], dtype = tf.float64))
def calculations(x, y):
w1d = tf.matmul(x, w1)
h1 = (tf.nn.sigmoid(tf.add(w1d, b1)))
h1w2 = tf.matmul(h1, w2)
activation = tf.add(tf.nn.sigmoid(tf.matmul(h1, w2)), b2)
error = tf.reduce_sum(tf.pow(activation - y,2))/(len(x))
return [ activation, error ]
Мои первоначальные мысли заключались в том, что он должен быть того же размера, что и мои веса, но я получаю эту ошибку:
ValueError: Dimensions must be equal, but are 251 and 4 for 'Add' (op: 'Add') with input shapes: [251,10], [4,10]
Я играл с разными идеями, но, похоже, ничего не получается.
(Мои входные данные имеют 4 функции)
Структура сети, которую я пробовал, состоит из 4 нейронов во входном слое, 10 в скрытом слое и 1 в выходном слое позже, но я чувствую, что могу перепутать размеры и в моем слое весов?