代码之家  ›  专栏  ›  技术社区  ›  Austin

返回带有多处理过程

  •  1
  • Austin  · 技术社区  · 6 年前

    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内存的问题,这最终导致了resourceExhausterError。)

    1 回复  |  直到 6 年前
        1
  •  2
  •   AmilaMGunawardana    6 年前

    `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
    `
    

    然后你就可以用你的代码调用全局变量了。