nlp.js 如何更改NLP停靠记录器?

ha5z0ras  于 5个月前  发布在  其他
关注(0)|答案(2)|浏览(67)

我想更改dock logger,以便我可以使用自己的
我使用给定的here示例来注册自己的logger

import { defaultContainer, dockStart } from '@nlpjs/basic';
import { MyCustomLoggerClass } from './some-file';

defaultContainer.register('logger', new MyCustomLoggerClass());

const dock = await dockStart(this.options.dock);
const manager = dock.get('nlp');

manager.addCorpus(corpusFilePath);

await manager.train();
export class MyCustomLoggerClass {
    public constructor() {}

    public trace(...messages: string[]): void {
        console.trace('[TRACE]', ...messages);
    }

    public debug(...messages: string[]): void {
        console.debug('[DEBUG]', ...messages);
    }

    public info(...messages: string[]): void {
        console.info('[INFO]', ...messages);
    }

    public log(...messages: string[]): void {
        console.log('[LOG]', ...messages);
    }

    public warn(...messages: string[]): void {
        console.warn('[WARN]', ...messages);
    }

    public error(...messages: string[]): void {
        console.error('[ERROR]', ...messages);
    }

    public fatal(...messages: string[]): void {
        console.error('[FATAL]', ...messages);
    }
}

但是日志仍然没有改变

qxsslcnc

qxsslcnc1#

我重新打开这个问题,因为我仍然没有找到解决方案...即使使用了在容器中添加自定义日志记录器的例子,我的日志记录器示例仍然无法激活。即使复制了这个例子,自定义日志记录器也没有起作用。
我以这种方式修改了我的代码:

xesrikrc

xesrikrc2#

你好,
你正确地更改了日志记录器。
问题在于神经训练器不使用容器中的日志记录器。
当创建神经训练器时,它接受一个设置 "log",可以为 true 以使用默认的控制台,false 表示不记录或使用函数进行记录。
https://github.com/axa-group/nlp.js/blob/master/packages/neural/src/neural-network.js#L40
你可以更改记录神经训练器的函数:

const { dockStart } = require('@nlpjs/basic');

(async () => {
  const config = {
    settings: {
      nlp: {
        nlu: {
          log: (status, time) => console.log(`custom log: ${status.iterations} ${status.error} ${time}ms`),
        },
        corpora: [
          "./corpus-en.json"
        ]
      }
    },
    use: ["Basic"]
  }

  const dock = await dockStart(config);

相关问题