Сохранение и загрузка GPFLOW: невозможно закрепить или использовать загруженную модель

РЕДАКТИРОВАТЬ Удаление названия модели решает проблему. Однако я все еще оставляю это открытым, чтобы решить, является ли это фактической ошибкой, или я сделал какую-то ошибку


Я пытаюсь сохранить, а затем загрузить и использовать модель. Это работает, поскольку я могу загрузить модель и увидеть все параметры, но почему-то мне не удается продолжить обучение или использовать его для прогнозов.

Что я должен изменить?

import gpflow
import numpy as np

### Setup
np.random.seed(1001)
N = 50
f = lambda x1, x2: np.sin(12 * x1) + 0.66 * np.cos(25 * x1) + np.sin(12 * x2) + 0.66 * np.cos(25 * x2)
X1 = np.random.rand(N, 1)
X2 = np.random.rand(N, 1)
Y = f(X1, X2) + np.random.randn(N, 1) * 0.1 + 3
X = np.hstack((X1, X2))
###

### with defer_build as I need that in my actual model
with gpflow.defer_build():
    m = gpflow.models.SVGP(X, Y, kern=gpflow.kernels.RBF(2), likelihood=gpflow.likelihoods.Gaussian(), Z=X.copy(),
                  name="test")

m.compile()
session = m.enquire_session()
gpflow.train.ScipyOptimizer().minimize(m)
m.anchor(session)
saver = gpflow.saver.Saver()
saver.save("tmp", m)


#############################
### (In another session..)

### Load Model
saver = gpflow.saver.Saver()
m_loaded = saver.load("tmp")

## Here Things go wrong:
m_loaded.predict_f(X)

Каким-то образом используемый граф является None:

  File "/home/username/anaconda3/envs/ml/lib/python3.6/site-packages/tensorflow/python/client/save_model.py", line 30, in <module>
    m_loaded.predict_f(X)
  File "/home/username/anaconda3/envs/ml/lib/python3.6/site-packages/gpflow/decors.py", line 155, in autoflow_wrapper
    raise GPflowError('Not built with "{graph}".'.format(graph=obj.graph))
gpflow.core.errors.GPflowError: Not built with "None".

0 ответов

Другие вопросы по тегам