Я пытаюсь создать API для трех моделей нейронных сетей. Первые 2 используют бэкэнд Theano, а последняя модель требует TensorFlow. Я пытаюсь динамически переключать серверную часть таким образом, чтобы, когда я вызываю класс для первой сети, в которой я загружаю модель, чтобы получить прогнозы, я хочу, чтобы бэкэнд Keras переключился на Theano, и аналогично, когда я вызываю вторую модель, она переключается на Теано. Но когда я вызываю третью модель, я хочу, чтобы бэкэнд сменился на TensorFlow. Я попытался использовать следующий код
from keras import backend as K
def car_categories_gate(self, image_path):
# import keras.backend
# K = keras.backend.backend()
if K.backend() == 'tensorflow':
os.environ['KERAS_BACKEND'] = 'theano'
K.set_image_data_format("channels_first")
print(K.backend())
print("Gate 1 running")
, чтобы вы могли видеть, что когда я вызываю метод класса car_categories_gate()
, он не меняет серверную часть. Я искал больше об этом и выяснил, что мне нужно перезагрузить модуль, поэтому я попробовал import importlib; importlib.reload(K)
после того, как установил формат данных изображения для перезагрузки модуля K. Но когда я использую это, я получаю другую ошибку:
RuntimeError: Mixed dnn version. The header is version 7401 while the library is version 7600.
Я не использую ноутбук, это просто файл .py. Есть ли простой способ динамически изменять серверную часть всякий раз, когда я вызываю метод класса? любая помощь будет принята с благодарностью.