Я внедряю модуль машинного обучения, который должен работать в Raspberry Pi, который в настоящее время используется несколькими службами.Моя идея состоит в том, чтобы хранить в устройстве только код, отвечающий за извлечение входов модуля ML и выполнение прогноза, вместе с файлом, содержащим модель нейронной сети, уже установленную с использованием Keras.Другими словами, я хотел бы избежать установки всех пакетов Keras / Tensorflow и зависимостей, если моя цель - только выполнить прогнозирование для обученной модели, а не обучать новую модель.Есть способ сделать это?Существуют ли какие-либо облегченные библиотеки, которые позволяют загружать модель нейронной сети (со всеми настройками весов и смещений) и выполнять прогнозирование с учетом входных данных?
Что я могу сделать сейчас, так это загрузить вRaspberry Pi - файл .h5, содержащий модель, веса и смещения, но все же я должен объявить функцию построения модели через Keras.
from tensorflow.keras.models import load_model
from tensorflow.keras.wrappers.scikit_learn import KerasRegressor
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
def NN_model():
'''
Definition of the Neural Network model
'''
model = Sequential()
model.add(Dense(7, input_dim=6, kernel_initializer='normal', activation='relu'))
model.add(Dense(15, kernel_initializer='normal', activation='relu'))
model.add(Dense(24, kernel_initializer='normal'))
# Compile model
model.compile(loss='mean_squared_error', optimizer='adam')
return model
'''
Load NN model and use it to predict the radiation values
for the next 24 hours, hour by hour
'''
regr = KerasRegressor(build_fn=NN_model, epochs=1000, batch_size=5, verbose=0)
regr.model = load_model('saved_model.h5')
pred=regr.predict(input_row)
Поскольку встроенная нейронная сеть - это только вопросвесов и смещений (и функций активации), я ожидаю, что, как только эти параметры будут определены, мне не понадобится вся среда Tensforflow и Keras для сопоставления вывода с входами, которые я даю NN.
То, что я хотел бы иметь, это что-то вроде:
import lightweight_module as lm
regression_model = lm.load_model('saved_model.h5')
prediction=regression_model.predict(inputs)