我是机器学习的初学者,我有一个小疑问!
我一直在研究机器学习代码,其中我使用tensorflow预测未来值。现在,该代码使用最初实现一次热编码的数据集,然后合并OHE列并创建estimator函数。对于估计器模型,我使用了DNN回归器。代码中的任何地方都没有使用Keras。
model=tf.estimator.DNNRegressor(hidden_units=[100,100,100],feature_columns=feature_columns,
optimizer=tf.optimizers.Adam(learning_rate=0.01),
activation_fn=tf.nn.relu )
现在,我尝试使用Pickle进行保存。但是,出现此错误:
AttributeError: Can't pickle local object 'DNNRegressorV2.__init__.<locals>._model_fn'
我使用joblib尝试了相同的操作,但是出现了以下问题:
PicklingError: Can't pickle <function DNNRegressorV2.__init__.<locals>._model_fn at 0x00000175F1A0E948>: it's not found as tensorflow_estimator.python.estimator.canned.dnn.DNNRegressorV2.__init__.<locals>._model_fn
在此之后,我尝试了这段代码
tf.keras.models.save_model( model, filepath, overwrite=True,
include_optimizer=True, save_format=None, signatures=None, options=None )
但是我得到了错误:
AttributeError: 'DNNRegressorV2' object has no attribute 'built'
我还尝试了其他方法,例如model.save(),model.to_json(),还尝试使用API保存-没有一个可行的方法。
有人可以帮我吗?