Расчет прогнозов с использованием функции keras's model.get_weight () - PullRequest
0 голосов
/ 10 октября 2019

Я пытаюсь создать контролируемую обучающуюся нейронную сеть. Я использовал данные о ВВП моей страны (в журнале) и использовал 4 разных метода ARMAX, чтобы получить оценку. Таким образом, мой входной узел будет предсказанными значениями, которые я получил от каждой модели.

model = Sequential()
model.add(Dense(units = 2, input_dim = 5, activation = 'relu'))
model.add(Dense(units = 1))
model.compile(loss = 'mse', optimizer = 'sgd')
result = model.fit(x_train, y_train, epochs = 100, batch_size = 6, validation_data = (x_val, y_val), verbose = 1)

yhat = model.predict(x, verbose = 1) * 11
print(yhat)

, затем я настроил свою нейронную сеть, как описано выше, и получил

array([[10.346265],
       [10.361134],
       [10.401741],
       [10.438497],
       [10.476765],
       [10.529798],
       [10.57453 ]], dtype=float32)

также с помощью

model.get_weight()

[array([[ 0.7262494 ,  0.20728986],
        [ 0.8580236 ,  0.09909786],
        [-0.85029256,  0.7897095 ],
        [ 0.18258041,  0.6937324 ],
        [ 0.6681617 , -0.2299874 ]], dtype=float32),
 array([0.03405639, 0.02014379], dtype=float32),
 array([[0.33395663],
        [0.2603701 ]], dtype=float32),
 array([0.1317909], dtype=float32)]

Но когда я использовал первый набор данных [10.334708, 10.374603, 10.373235, 10.378512, 4.374813] и вычислил их с помощью простой алгебры

se = [10.334708, 10.374603, 10.373235, 10.378512, 4.374813]
w0 = [0.7262494, 0.8580236, -0.85029256, 0.18258041, 0.6681617]
w1 = [0.20728986, 0.09909786, 0.7897095, 0.6937324, -0.2299874]
b = np.dot([np.dot(se,w0)+0.03405639, np.dot(se,w1)+0.02014379], w2)+0.1317909
# Real Data - estimate
10.346265 - a
1.4840910709114112

, числа казались примерно равными 1,480914. Как рассчитать (руками) вес, полученный из функции get_weight ()?

...