这是一个非常新手的问题,但我试图解决 Torch 中的 cross_entropy 损失问题,所以我创建了以下代码:
x = torch.FloatTensor([
[1.,0.,0.]
,[0.,1.,0.]
,[0.,0.,1.]
])
print(x.argmax(dim=1))
y = torch.LongTensor([0,1,2])
loss = torch.nn.functional.cross_entropy(x, y)
print(loss)
Run Code Online (Sandbox Code Playgroud)
输出以下内容:
tensor([0, 1, 2])
tensor(0.5514)
Run Code Online (Sandbox Code Playgroud)
我不明白的是,鉴于我的输入与预期输出匹配,为什么损失不为 0?
我正在Chrome Canary 63和Chrome 61上测试以下代码.代码的目标是设置一个调用super到类实例(z)的方法.在我的代码库中,有时会在添加到实例之前使用Object.assign克隆属性块,并且只要发生这种情况,代码就会失败.
我用下面的代码示例重现了这个问题.如果避免浅克隆(props = Object.assign({}, props);),代码工作正常,但如果我添加该行,我得到TypeError: (intermediate value).bar is not a function.
我试过做Object.create(this, Object.getOwnPropertyDescriptors(props))而不是Object.assign但它会导致同样的错误.
有没有办法正确设置super已克隆的对象?
let Moo = class {
bar() {
return " [bar on Moo] ";
}
};
let Zoo = class extends Moo {
bar() {
return " [bar on Zoo] " + super.bar();
}
};
function addProps(inst, props) {
// Code works if the line below is commented out but otherwise
// …Run Code Online (Sandbox Code Playgroud) 我已经看到类似的问题,但我已经彻底检查了以下问题.我在Firefox的控制台中收到"未终止的字符串文字"错误.
我有一个HTML页面如下:
<HTML>
<HEAD>
<SCRIPT type="text/JavaScript">
var test = "</script>";
</SCRIPT>
</HEAD>
<BODY>
</BODY>
</HTML>
Run Code Online (Sandbox Code Playgroud)
据我所知,这个JavaScript应该没有任何效果,因为我不相信'<','/'或'>'在用作JavaScript字符串变量的一部分时需要转义.实际上以下工作:
var test = "</>";
Run Code Online (Sandbox Code Playgroud)
所以,我想知道我的小脚本是如何设法浏览浏览器或我如何解决它?