gpt4 book ai didi

python - 尝试存储神经网络时获取 'can' t pickle _thread.RLock 对象

转载 作者:太空宇宙 更新时间:2023-11-04 04:32:09 25 4
gpt4 key购买 nike

我目前正在训练神经网络,我尝试存储训练后的模型以备将来使用。该模型基于 kerasSequential(见下文)。我正在使用 joblib.dump(model, output_file_gen) 来存储信息。但是,我收到错误消息:

TypeError: can't pickle _thread.RLock objects.

我查看了有关此错误消息的一些 StackOverflow 帖子,它似乎与多线程有关。我不确定模型中发生了什么,但也许有人可以通过采取措施消除此错误或建议更好的神经网络存储路径来给我建议如何存储模型。

NN 设置如下:

model = Sequential()

model.add(Dense(256, input_dim=self.latent_dim))
model.add(LeakyReLU(alpha=0.2))
model.add(BatchNormalization(momentum=0.8))
model.add(Dense(512))
model.add(LeakyReLU(alpha=0.2))
model.add(BatchNormalization(momentum=0.8))
model.add(Dense(1024))
model.add(LeakyReLU(alpha=0.2))
model.add(BatchNormalization(momentum=0.8))
model.add(Dense(np.prod(self.img_shape), activation='tanh'))
model.add(Reshape(self.img_shape))

最佳答案

不建议使用 pickle 或 cPickle 保存 Keras 模型。这是这里错误的原因(松散推理)

您可以使用 model.save(filepath) 将模型保存到单个 HDF5 文件中,该文件将包含:

  1. 模型的架构,允许重新创建模型
  2. 模型的权重
  3. 训练配置(损失、优化器)
  4. 优化器的状态,允许从您停止的地方恢复训练。

然后您可以使用 keras.models.load_model(filepath) 来重新实例化/重新加载您的模型。

以上会占用大量磁盘空间。因此您可以选择保存模型权重。见here了解更多详情

关于python - 尝试存储神经网络时获取 'can' t pickle _thread.RLock 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52474744/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com