要跟踪为特定任务训练的模型及其所有参数,我想将所有相关信息存储在数据库中。因为我熟悉大熊猫,所以我选择了HDF。但是,我在存储python对象时遇到了问题。
我具有以下功能,可将带有参数的模型存储到数据库(HDF存储):
import pandas as pd
def store_model_to_database():
data = {
'model name' : model_name, # string
'model' : model, # python object (keras model)
'file' : model_store_path, # string
'optimizer' : optimizer, # string
'loss' : loss, # string
'#epochs' : epochs, # int
'batch size' : batch_size, # int
'accuracy' : accuracy, # float
'history' : history # python object
}
store = pd.HDFStore('data/model_store.h5', 'a')
df = pd.DataFrame.from_records([data])
store.append('data', df)
对于调用store.append
的数据框中的每个python对象,我都会收到以下形式的错误
TypeError:无法序列化列[field],因为其数据 内容是[混合]对象dtype
其中<field>
是model
或history
之一。
但是据我所知,HDF存储可以存储任何数据,包括python对象。使用pandas成功将python对象写入HDF存储区需要什么?