将带有python对象的DataFrame作为数据存储在HDF存储中

时间:2019-01-30 02:03:41

标签: python pandas hdf5

要跟踪为特定任务训练的模型及其所有参数,我想将所有相关信息存储在数据库中。因为我熟悉大熊猫,所以我选择了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>modelhistory之一。

但是据我所知,HDF存储可以存储任何数据,包括python对象。使用pandas成功将python对象写入HDF存储区需要什么?

0 个答案:

没有答案