Я начал иметь дело с Tensorflow. В упражнении по Udacity я научился создавать нейронную сеть, которая может конвертировать градусы Цельсия в градусы Фаренгейта. Для обучения нейронной сети было приведено 3 примера:
celsius_q = np.array([-40, -10, 0, 8, 15, 22, 38], dtype=float)
fahrenheit_a = np.array([-40, 14, 32, 46, 59, 72, 100], dtype=float)
Теперь я хотел бы заняться более сложной проблемой. У меня есть серия измерений с 3 сериями измерений в качестве примеров. Для каждой серии измерений у меня есть 4 входных параметра (входы) и 3 соответствующих измеренных значения (выходы).
![data](https://i.stack.imgur.com/ioJlX.jpg)
Теперь я хочу создать нейронную сеть и дать ей 3 серии измерений для обучения. Затем я хочу ввести набор входных параметров, и нейронная сеть должна дать мне выходные данные.
Я взял существующий код из моего упражнения на Udacity и попытался преобразовать его в свой вариант использования.
К сожалению, я еще не достиг успеха. Код здесь:
Импорт
import tensorflow as tf
import numpy as np
Настройка данных обучения
inputMatrix = np.array([(100,230,0.95,100),
(200,245,0.99,121),
( 40,250,0.91,123)],dtype=float)
outputMatrix = np.array([(120, 5,120),
(123,24,100),
(154, 3,121)],dtype=float)
for i,c in enumerate(inputMatrix):
print("{}Input Matrix={}Output Matrix".format(c,outputMatrix[i]))
Создание модели
l0 = tf.keras.layers.Dense(units = 4, input_shape = [4])
l1 = tf.keras.layers.Dense(units = 64)
l2 = tf.keras.layers.Dense(units = 128)
l3 = tf.keras.layers.Dense(units = 3)
model = tf.keras.Sequential([l0,l1,l2,l3])
Компиляция модели
model.compile(loss='mean_squared_error', optimizer=tf.keras.optimizers.Adam(0.1))
Обучение модели
history = model.fit(inputMatrix,outputMatrix,epochs=500,verbose=False)
print("Finished training the model!")
Отображение статистики обучения
import matplotlib.pyplot as plt
plt.xlabel('Epoch Number')
plt.ylabel('Loss Magnitude')
plt.plot(history.history['loss'])
Использование модели для прогнозирования значений
print(model.predict([120,260,0.98,110]))`
Я думаю, чтопроблема в том, что в разделе «Настройка данных обучения» 3 серии измерений не реализованы правильно.
Если я выполню код в разделе «Обучение модели», обучение закончится очень быстро, чего не должно бытьс такой сложной задачей.
Я надеюсь, что кто-то может помочь мне научиться шаг за шагом и решить эту проблему.