Я пытаюсь установить Tensorflow DNNRegressor и сохраняю модель, предоставляя каталог для model_dir arg.Кроме того, я определяю функциональные столбцы.Мой вопрос: как я могу сохранить определения столбцов объектов и загрузить модель для прогнозирования позже?
Я пытался использовать рассол, но он говорит:
AttributeError: Can't pickle local object 'embedding_column.<locals>._creator'
Определение модели:
estimator = tf.estimator.DNNRegressor(
hidden_units=[20, 15],
feature_columns=self.feature_columns,
model_dir=SAVE_DIR,
optimizer='Adagrad',
activation_fn=tf.nn.relu,
dropout=0.5)
Функция сохранения для класса Python:
def save_model(self, directory_path):
path = os.path.join(directory_path, 'model.pkl')
with open(path, 'wb') as file:
pickle.dump(file=file, obj=self)
Функция загрузки модели:
@classmethod
def load_model(cls, directory_path):
path = os.path.join(directory_path, 'model.pkl')
with open(path, 'rb') as file:
model = pickle.load(file=file)
return model
Функция Predict (возможно, неверная, поскольку нет способа проверить, не выбраны ли столбцы объектов)
def predict(self, data, SAVE_DIR):
estimator = tf.estimator.DNNRegressor(
hidden_units=[20, 15],
feature_columns=self.feature_columns,
model_dir=SAVE_DIR,
optimizer='Adagrad',
activation_fn=tf.nn.relu,
dropout=0.5 )
predict_input_fn = tf.estimator.inputs.pandas_input_fn(x=data)
predictions = extimator.predict(predict_input_fn)
return predictions
Цели:
Я хочу найти способ определения заранее сделанного оценщика с помощью столбцов признаков и сохранить модель для дальнейшего использования.После этого я хочу загрузить модель и сделать прогнозы с помощью фрейма данных padas.
Как мне этого добиться?