python-3.x - 使用 multiprocessing.Process 返回一个对象
问题描述
这可能吗?我想修改它以返回model
from tensorflow.keras.models import load_model
import tensorflow as tf
import multiprocessing
import numpy as np
def get_model():
model = load_model("./model.h5")
optimizer = tf.keras.optimizers.SGD(lr=0.0001, momentum=0.99, nesterov=True)
model.compile(loss='categorical_crossentropy', optimizer=optimizer, metrics=['accuracy'])
return model # can I get this back?
# option 1: execute code with extra process
p = multiprocessing.Process(target=get_model)
p.start()
p.join()
# wait until user presses enter key
input()
(我正在尝试这样做,因为我读到这是加载此 Keras 模型后无法释放我的 GPU 内存的一种解决方案,这最终会导致 ResourceExhaustedError 稍后。)
解决方案
如果您将其加载到全局变量并保留内存转储,我认为您的问题将得到排序。
`global model
model = init()
def get_model():
model = load_model("./model.h5")
optimizer = tf.keras.optimizers.SGD(lr=0.0001, momentum=0.99, nesterov=True)
model.compile(loss='categorical_crossentropy', optimizer=optimizer, metrics=['accuracy'])
returnt model
`
之后,您将能够在您的代码中调用全局变量。
推荐阅读
- css - 带有粘性导航的 CSS 网格
- linux - 删除恶意软件代码并替换为新代码 linux
- javascript - 锚标记 IE 11 问题内的文本区域
- java - 空指针异常 Java 购物车“排序”方法
- r - mshapiro.test 'solve.default(R %*% t(R), tol = 1e-18) 中的错误:Lapack 例程 dgesv:系统完全是奇异的:U[7,7] = 0'
- python-3.x - 使用 Pandas 将 dict 条目扩展为行
- c# - 在列表中添加和显示变量
- python - python中我的变量输入的语法无效
- excel - 将 XML 转换为 excel,但前导零被删除
- php - 在 laravel 中注册或登录后如何使用信息消息重定向?