我正在使用 keras-js ( https://github.com/transcranial/keras-js ) 对前端的用户摘要进行一些情感分析。它对于预测结果效果很好。但是当我运行“yarn test”时,由于 keras-js 使用的 WebGL2 库,一些测试用例被破坏。
我尝试搜索类似的问题,但只发现:
它位于node_modules/gl/webgl.js。
函数 checkObject (对象) { 返回 typeof object === 'object' || !目的 } 我所做的只是将 void 检查从 object === void 0 放松到 !object。现在运行起来,至少可以创建一个gl上下文了。
当我在 keras-js webgl 文件中更改上述代码时,所有测试都通过了。
import KerasJS from 'keras-js';
let model = new KerasJS.Model({
filepath: 'imdb_bidirectional_lstm.bin',
gpu: false
});
await processPredict(modelArr, caseData, model);
即使将 keras-js 导入我的应用程序,测试用例也应该通过。但现在,它显示错误消息,例如:
类型错误:gl.getExtension 不是函数
8 | filepath: 'imdb_bidirectional_lstm.bin',
9 | gpu: false
> 10 | });
| ^
11 | await processPredict(modelArr, caseData, model);
12 | // for (let k = 0; k < caseData.notes.length; k++) {
13 | // let model = new KerasJS.Model({
at new WebGL2 (node_modules/keras-js/lib/WebGL2.js:22:12)
at Object.<anonymous> (node_modules/keras-js/lib/WebGL2.js:320:16)
at Object.<anonymous> (node_modules/keras-js/lib/Layer.js:8:14)
at Object.<anonymous> (node_modules/keras-js/lib/layers/InputLayer.js:10:37)
at Object.<anonymous> (node_modules/keras-js/lib/layers/index.js:16:42)
at Object.<anonymous> (node_modules/keras-js/lib/Model.js:28:38)
at Object.<anonymous> (node_modules/keras-js/lib/index.js:22:37)
at Object.<anonymous> (src/utils/getSentimentAnalysis.ts:10:39)
at Object.<anonymous> (src/redux/actions/anomalyDataActions.ts:12:29)
at Object.<anonymous> (src/redux/actions/anomalyDataActions.test.js:11:50)
最佳答案
我使用了网络上由 Keras 训练的模型。 我也在使用 Tensorflow.js 它支持使用加载keras模型。 请查看。 :)
关于reactjs - 导入 keras-js 将破坏相关功能和组件的单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57227482/