javascript - 当子进程尝试从 python 脚本加载 keras 模型时父进程退出
问题描述
我正在开发一个使用 keras 模型作为分类器的应用程序。这本身就可以正常工作,但是当我尝试将这些数据传输到 js 脚本以用于前端/GUI 部分时,我遇到了问题。失败的代码片段如下:
JS
const sensor = spawn('python', ['../../scripts/realtime_test.py']);
let count = 0;
sensor.stdout.on('data', function(data) {
// Parse int if it is a classification, if it isn't, it is a debugging message
let val = parseInt(data);
if(!isNaN(val)){
temperatures.push(val)
} else{
val = String.fromCharCode.apply(null, data)
temperatures.push(val)
}
console.log(count + " " + temperatures[count++]);
});
Python
if __name__ == "__main__":
openzen.set_log_level(openzen.ZenLogLevel.Off)
# Make client
error, client = openzen.make_client()
if not error == openzen.ZenError.NoError:
print("Error while initializing OpenZen library", flush=True, end='')
sys.exit(1)
# Scan, connect and syncronize sensors
sensors_found = scan_for_sensors(client)
#name, s, imu, b = connect_to_sensor(client, sensors_found[0])
sensor_bank = Sensor_Bank()
for sensor in sensors_found:
name, s, imu = connect_to_sensor(client, sensor)
sensor_bank.add_sensor(name, s, imu)
#print(len(sensor_bank.sensor_arr))
data_queue = Data_Queue(len(sensor_bank.sensor_arr))
sync_sensors(client, sensor_bank)
model = keras.models.load_model(f'model/models/ANN_model_{NUM_SENSORS}.h5') # FAILING HERE
classify_thread = threading.Thread(target=classify, args=[model, data_queue], daemon=True)
classify_thread.start()
collect_data(client, data_queue, sensor_bank)
问题似乎是模型的加载。该过程只是退出而没有错误消息,直到我在 python 代码片段中标记为 FAILING 的行之前工作得很好。AFAIK keras.load 函数不会产生它自己的单独进程,所以我不怀疑多个进程冲突可能是罪魁祸首......关于为什么会发生这种情况的任何想法?
提前致谢!
解决方案
推荐阅读
- maven - 使用 schema-registry 时遇到问题:下载
- winapi - 如何检索 AP 可以接受的所有身份验证/密码对的完整列表?
- node.js - 无法使用 import 而不是 require,或者无法使用 ts-node 和 tsdx 构建依赖项
- sed - 使用 sed 替换单引号中的值
- c - 使用递归计算总位数
- python - 从 Reddit 上的线程中检索所有评论
- asp.net-mvc - sitefinity two widgets on a page
- php - How do I get the serialized inventory item by the inventory id in NetSuite api with PHP?
- javascript - How can I create toggle action that only toggles once?
- ios - Reverse scrollview height controlled by stack view in storyboard