小编Dav*_*uck的帖子

以YOLO为例的微调和迁移学习

我有一个关于微调和迁移学习的一般性问题,当我试图找出如何最好地让 yolo 检测我的自定义对象(手)时出现了这个问题。

对于可能包含大量虚假信息的长文本,我深表歉意。如果有人有耐心阅读它并帮助我清除我的困惑,我会很高兴。

经过大量的谷歌搜索,我了解到很多人认为微调是迁移学习的一个子类,而其他人则认为他们是训练模型的不同方法。同时,人们区分仅在自定义数据集上重新训练模型的最后一个分类器层与重新训练模型的其他层(并且可能添加一个全新的分类器而不是重新训练?)。这两种方法都使用预先训练的模型。

我最后的困惑就在这里:我按照以下说明操作:https : //github.com/thtrieu/darkflow 通过darkflow 使用以下命令训练小yolo:

# Initialize yolo-new from yolo-tiny, then train the net on 100% GPU: flow --model cfg/yolo-new.cfg --load bin/tiny-yolo.weights --train --gpu 1.0 但是这里发生了什么?我想我只是重新训练分类器,因为说明说要更改配置文件中最后一层的类数。但话又说回来,还需要更改倒数第二层(卷积层)中的过滤器数量。

最后,说明提供了替代培训的示例: # Completely initialize yolo-new and train it with ADAM optimizer flow --model cfg/yolo-new.cfg --train --trainer adam我完全不明白这与迁移学习的不同方式有何关联。

machine-learning object-detection yolo transfer-learning

7
推荐指数
1
解决办法
1万
查看次数

如何使用 pino 序列化错误对象?

我刚刚开始使用 pino,我试图序列化一个错误对象,但它不起作用。这是我正在使用的代码:

const log = pino({
    name: "pino",
    timestamp: pino.stdTimeFunctions.isoTime,
    level: "trace", 
    serializers: { 
         err: e=> ({ 
             type: e.type, 
             message: e.message,
             stack: e.stack 
         }) 
    } 
})
Run Code Online (Sandbox Code Playgroud)

node.js pinojs

7
推荐指数
1
解决办法
1998
查看次数

Discord.js 13 channel.join 不是一个函数

我最近安装了 Discord.js 13.1.0,但我的音乐命令坏了,因为显然channel.join();它不是一个函数,尽管我已经在 12.5.3 上使用它几个月了……

有人知道解决这个问题吗?

我的加入命令的某些部分:

const { channel } = message.member.voice;
const voiceChannel = message.member.voice.channel;

await channel.join();
Run Code Online (Sandbox Code Playgroud)

它会导致错误。

discord discord.js

7
推荐指数
1
解决办法
2万
查看次数

在 Gitlab 中撤消新的合并请求

我错误地将提交推送到了我的 Gitlab。我怎样才能撤消它?

看图片

gitlab

6
推荐指数
2
解决办法
6万
查看次数

django-allauth ACCOUNT_SESSION_REMEMBER=无不起作用

我知道django-allauth设置ACCOUNT_SESSION_REMEBER应该如下:

None:  optionally remember, depending on user input
True:  always remember
False: never remember
Run Code Online (Sandbox Code Playgroud)

但就我而言,当ACCOUNT_SESSION_REMEMBER使用None时,无论用户是否选择检查remember me,它都不起作用。

ACCOUNT_SESSION_REMEMBER当与True或 一起使用时False,它会按照记录的方式工作。

django django-allauth

6
推荐指数
1
解决办法
695
查看次数

带有输出参数的 Angular 2 降级组件到 Angular 1

我成功地将 Angular 7 组件降级为 Angular 1,但我遇到了一个小问题,我尝试通过多种方法解决。

我的降级组件的输出参数如下:

@Output()isValid = new EventEmitter<boolean>();
Run Code Online (Sandbox Code Playgroud)

它的触发方式如下:

this.isValid.emit(false);
Run Code Online (Sandbox Code Playgroud)

在我的 Angular 1 组件中,我将其降级后使用如下:

  • 在模板中:
<downgrade-employee-selector (is-valid)="{{vm.validateEmployeeSelector($event)}}"> </downgrade-employee-selector>
Run Code Online (Sandbox Code Playgroud)
  • 在 ts:
self.validateEmployeeSelector = ($event) => {console.log($event);}
Run Code Online (Sandbox Code Playgroud)

它工作正常,但在 Angular 1 函数$event值始终未定义,我无法理解它是如何工作的。

downgrade angular angular7

6
推荐指数
1
解决办法
1470
查看次数

暂停 Jupyter Notebook 小部件,等待用户输入

我和 TheInterestedOne在此处提出的问题相同。

我需要为用户创建两个按钮,并建议用户点击循环中的两个按钮之一;以便循环的下一次迭代仅在用户选择之后发生。

我读过这个来源,但我不能让它适用于按钮。我不明白,在使用按钮的情况下,小部件属性如何变化。

from functools import wraps
def yield_for_change(widget, attribute):
    def f(iterator):
        @wraps(iterator)
        def inner():
            i = iterator()
            def next_i(change):
                try:
                    i.send(change.new)
                except StopIteration as e:
                    widget.unobserve(next_i, attribute)
            widget.observe(next_i, attribute) //**button.on_click(on_button_clicked) 
                                                                may be?**
            # start the generator
            next(i)
        return inner
    return f


from ipywidgets import Button
button=Button()


def on_button_clicked():
    print("Button clicked.")


@yield_for_change(button, 'value')
def f():
    for i in range(10):
        print('did work %s'%i)
        x = yield
        button.on_click(on_button_clicked)
Run Code Online (Sandbox Code Playgroud)

python widget button jupyter-notebook ipywidgets

6
推荐指数
2
解决办法
5495
查看次数

如何让 SCons 在 Windows 10 命令行上工作?

一段时间以来,我一直在尝试让 SCons 在 Windows 10 cmd 上工作。我通过 pip 安装了它,所以我相信它位于正确的目录中,因为当我使用py. 当我尝试使用时scons,我收到消息

“scons”不被识别为内部或外部命令、可操作程序或批处理文件。

因此,我尝试编辑用户和系统路径变量以在目录下包含 scons 'C:\Users\dwayn\AppData\Local\Programs\Python38\Lib\site-packages\scons\',但出现相同的错误。

我应该编辑什么才能使 scons 在命令行上运行?

注意:如果有影响的话,我的系统上确实安装了 Anaconda 3。

python windows cmd scons windows-10

6
推荐指数
2
解决办法
1万
查看次数

避免输出参数(没有副作用)

我正在阅读 Robert C. Martin 的《简洁代码》,但我无法完全理解第 44 至 45 页的“无副作用”和“输出参数”部分。

在“没有副作用”部分中,指出传递给方法参数的更改被视为副作用,不应执行。

在“输出参数”部分中,规定方法的参数不应改变。如果必须更改某些状态,则方法应该仅更改其所属对象的状态。

我确实理解,如果指定此行为的方法是由不完全意识到这一点的客户端调用的,则副作用和输出参数可能会导致令人困惑的行为和错误。此外,在多线程环境中工作时这也是有问题的。

但考虑到“干净代码”一书是基于 Java 示例编写的,我感到很困惑。

让我们看一个例子。假设我们有一个玩家类别:

public class Player {
    private int healthPoints;
    private boolean alive = true;

    public Player(int healthPoints) {
        if(healthPoints < 1) {
            throw new IllegalArgumentException();
        }
        this.healthPoints = healthPoints;
    }

    public boolean isAlive() {
        return this.alive;
    }

    public void fight(Player otherPlayer) {
        //do some fighting which will change this instance
        // but also the otherPlayer instance
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我们现在调用以下函数:

player1.fight(player2);
Run Code Online (Sandbox Code Playgroud)

这将改变player1的状态以及player2的状态。在大多数情况下,罗伯特·C·马丁(Robert C. Martin)不鼓励这样做。但实际上,我经常看到这种模式。大多数 Java 程序确实存在突变,对象的更改超出了它们创建的范围。

如果我们创建一场改变两个玩家的战斗,情况会更糟,因为现在另一个对象在其方法内改变了两个参数: …

java coding-style side-effects parameter-passing

6
推荐指数
1
解决办法
1813
查看次数

断言失败:在 .js 文件 ( emscripten ) 中调用 c 函数时,在运行时初始化错误之前调用本机函数 `int_sqrt`

我无法在另一个 JavaScript 文件中调用 C 函数,它给出错误“在运行时初始化之前调用”, 请参阅此链接

我按照给定链接中的描述在 emscripten 中编译了 C 代码,并在 test.js 文件中使用了生成的 asm.js 文件。用于生成 asm 的命令:-

emcc test/hello.cpp -o hello.html -s EXPORTED_FUNCTIONS="['_int_sqrt']" -s EXPORTED_RUNTIME_METHODS="["ccall", "cwrap"]"
Run Code Online (Sandbox Code Playgroud)

test.js 文件中的代码:

var Module = require('./asm.js');
var test =  Module.cwrap('int_sqrt', 'number', ['number']);
console.log(test(25));
Run Code Online (Sandbox Code Playgroud)

当我运行时node test出现错误

abort(Assertion failed: native function `int_sqrt` called before runtime initialization)
Run Code Online (Sandbox Code Playgroud)

emscripten asm.js

6
推荐指数
1
解决办法
2857
查看次数