小编Dar*_*ang的帖子

如何保存包含 keras 模型的对象?

这是我的代码骨架:

def build_model(x, y):
    model = tf.keras.models.Sequential()
    model.add(tf.keras.layers.Dense(1, activation='relu'))
    model.compile(loss='mean_squared_error', optimizer='adam')
    model.fit(x, y)
    return model

class MultiModel(object):
    def __init__(self, x1, y1, x2, y2):
        self.model1 = build_model(x1, y1)
        self.model2 = build_model(x2, y2)

if __name__ == '__main__':
    # code that builds x1, x2, y1, y2
    mm = MultiModel(x1, y1, x2, y2)  # How to save mm ?
Run Code Online (Sandbox Code Playgroud)

问题是我不知道如何保存包含多个 Keras 模型的mm对象。

Keras 内置的 save 方法只能保存 Keras 模型,因此在这种情况下无法使用。pickle模块无法保存_thread.RLock对象,因此它也无法使用。

也许可以使用 Keras save 方法独立保存每个模型,然后重新组合它们并将它们作为一个整体保存。但我不知道如何继续。

有任何想法吗 ?

python save python-3.x keras

7
推荐指数
1
解决办法
965
查看次数

Pandas内存使用不一致

当我使用Pandas DataFrame时,我有一些内存不一致.

这是我的代码框架:

import pandas as pd
import numpy as np

columns_dtype = {'A': np.int16, 'B': np.int8, ...}
df = pd.read_csv('my_file.csv', dtype=columns_dtype)
Run Code Online (Sandbox Code Playgroud)

这基本上只是在控制列数据类型的同时用pandas读取csv文件.但是,当我在寻找为我的程序分配多少内存时,这些信息似乎并不一致.

信息1:

df.info(memory_usage='deep')
Run Code Online (Sandbox Code Playgroud)

这给了: memory usage: 482.6 MB

信息2:

import dill, sys
sys.getsizeof(dill.dumps(df))
Run Code Online (Sandbox Code Playgroud)

这给了:( 506049782所以506 Mb)

信息3:

分配给我的程序的RAM是:1.1 GiB(或1.2 Gb)

其他信息(但我认为不相关):

my_file.csv的大小是888 Mb(ls -lh)

问题:

因为我只是将我的csv文件加载到Pandas DataFrame对象中,为什么我的程序需要超过1 Gb的RAM而对象大小约为0.5 Gb?

非常感谢

python memory pandas

6
推荐指数
1
解决办法
257
查看次数

标签 统计

python ×2

keras ×1

memory ×1

pandas ×1

python-3.x ×1

save ×1