我有一个关于微调和迁移学习的一般性问题,当我试图找出如何最好地让 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我完全不明白这与迁移学习的不同方式有何关联。
我刚刚开始使用 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) 我最近安装了 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)
它会导致错误。
我知道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,它会按照记录的方式工作。
我成功地将 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)
self.validateEmployeeSelector = ($event) => {console.log($event);}
Run Code Online (Sandbox Code Playgroud)
它工作正常,但在 Angular 1 函数$event值始终未定义,我无法理解它是如何工作的。
我和 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) 一段时间以来,我一直在尝试让 SCons 在 Windows 10 cmd 上工作。我通过 pip 安装了它,所以我相信它位于正确的目录中,因为当我使用py. 当我尝试使用时scons,我收到消息
“scons”不被识别为内部或外部命令、可操作程序或批处理文件。
因此,我尝试编辑用户和系统路径变量以在目录下包含 scons 'C:\Users\dwayn\AppData\Local\Programs\Python38\Lib\site-packages\scons\',但出现相同的错误。
我应该编辑什么才能使 scons 在命令行上运行?
注意:如果有影响的话,我的系统上确实安装了 Anaconda 3。
我正在阅读 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 程序确实存在突变,对象的更改超出了它们创建的范围。
如果我们创建一场改变两个玩家的战斗,情况会更糟,因为现在另一个对象在其方法内改变了两个参数: …
我无法在另一个 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出现错误
Run Code Online (Sandbox Code Playgroud)abort(Assertion failed: native function `int_sqrt` called before runtime initialization)
python ×2
angular ×1
angular7 ×1
asm.js ×1
button ×1
cmd ×1
coding-style ×1
discord ×1
discord.js ×1
django ×1
downgrade ×1
emscripten ×1
gitlab ×1
ipywidgets ×1
java ×1
node.js ×1
pinojs ×1
scons ×1
side-effects ×1
widget ×1
windows ×1
windows-10 ×1
yolo ×1