我试图用Keras实现加权二进制交叉熵,但我不确定代码是否正确.训练输出似乎有点令人困惑.在几个时代之后,我得到的精确度为~0.15.我认为这太少了(即使是随机猜测).
输出中通常有大约11%的值和89%的零,因此权重为w_zero = 0.89且w_one = 0.11.
我的代码:
def create_weighted_binary_crossentropy(zero_weight, one_weight):
def weighted_binary_crossentropy(y_true, y_pred):
# Original binary crossentropy (see losses.py):
# K.mean(K.binary_crossentropy(y_true, y_pred), axis=-1)
# Calculate the binary crossentropy
b_ce = K.binary_crossentropy(y_true, y_pred)
# Apply the weights
weight_vector = y_true * one_weight + (1. - y_true) * zero_weight
weighted_b_ce = weight_vector * b_ce
# Return the mean error
return K.mean(weighted_b_ce)
return weighted_binary_crossentropy
Run Code Online (Sandbox Code Playgroud)
也许有人看到什么错了?
谢谢
许多论文使用非常好的神经网络图像.我也想为我正在撰写的报告创建这样的图像.
一个例子:来自V. Badrinarayanan等人的"SegNet:用于图像分割的深度卷积编码器 - 解码器架构",第4页
https://arxiv.org/pdf/1511.00561v3.pdf
我的问题:可以使用哪种工具来创建此类图像?特别是旋转矩形看起来非常好.
非常感谢你
我使用libusb来枚举一些usb设备.现在我想获得"设备路径".我认为这不是usb device-path,因为我没有成功使用谷歌.
如果我用linux连接usb设备,我会收到一条消息dmesg
,这里有一些带有usb温度传感器的"设备路径"的例子(如下所示):
直接到usb端口:
[68448.099682] generic-usb 0003:0C45:7401.0056: input,hidraw1: USB HID v1.10 Keyboard [RDing TEMPer1V1.2] on usb-0000:00:12.0-1/input0
=> 12.0-1
直接到另一个端口:
[68560.853108] generic-usb 0003:0C45:7401.0058: input,hidraw1: USB HID v1.10 Keyboard [RDing TEMPer1V1.2] on usb-0000:00:13.0-1/input0
=> 13.0-1
到第一个使用端口的USB集线器:
[68600.245809] generic-usb 0003:0C45:7401.005A: input,hidraw1: USB HID v1.10 Keyboard [RDing TEMPer1V1.2] on usb-0000:00:12.2-1.4/input0
=> 12.2-1.4
到同一个USB集线器上的另一个端口:
[68647.925092] generic-usb 0003:0C45:7401.005C: input,hidraw1: USB HID v1.10 Keyboard [RDing TEMPer1V1.2] on usb-0000:00:12.2-1.3/input0
=> 12.2-1.3
现在用于以前使用的usb集线器上的usb集线器:
[68740.715518] generic-usb 0003:0C45:7401.005E: input,hidraw1: USB HID v1.10 Keyboard [RDing TEMPer1V1.2] on usb-0000:00:12.2-1.4.4/input0 …
我输入的图像如下所示:
我喜欢以一种方式对图像进行分割,以获得仅包含水平垂直线的近似多边形.
我的第一种方法是霍夫分割,但我只能创建矩形对象.这不适用于第二张图像.
然后我尝试使用决策树:对于每个图像,我训练了一个决策树,其中包含所有像素的输入x
和y
位置以及黑/白分类.然后我只使用了n
这棵树的第一层.使用这个新树,我对所有像素进行了预测.有时这很好用,但有时它没有.特别是树木深度因图片而异......
也许有人知道如何做到这一点?或者是否已有针对此用例的算法?
非常感谢你
问候
凯文
下面的函数签名在 C 中定义了什么?!
#include <stdio.h>
#include <string.h>
void f(int a[const volatile static 2])
{
(void)a;
}
int main() {
int b[1];
f(b);
}
Run Code Online (Sandbox Code Playgroud)
https://godbolt.org/z/6qPxaM1vM
这个地方我不明白const
//volatile
的含义,但是它似乎可以编译,所以我猜它有一个含义?static
谢谢
我尝试创建一个通用包装函数,它将任何函数作为参数以及它们的参数.就像std::thread
构造函数一样.
我目前的代码是:
#include <iostream>
using namespace std;
template<typename FUNCTION, typename... ARGS>
void wrapper(FUNCTION&& func, ARGS&&... args)
{
cout << "WRAPPER: BEFORE" << endl;
auto res = func(args...);
cout << "WRAPPER: AFTER" << endl;
//return res;
}
int dummy(int a, int b)
{
cout << a << '+' << b << '=' << (a + b) << endl;
return a + b;
}
int main(void)
{
dummy(3, 4);
wrapper(dummy, 3, 4);
}
Run Code Online (Sandbox Code Playgroud)
包装函数本身有效.它使用给定的参数调用给定的函数对象(std::function
,functor或只是"普通"函数).但我也想返回它的返回值.
这应该与删除的return
-statement一起使用,但遗憾的是我不知道如何声明包装函数返回类型.
我尝试了很多东西(例如 …
很长一段时间我都习惯gcc
编译C代码.有时我必须使用该optimize("O0")
属性来禁用特定功能的优化.现在我喜欢这样做clang
.
假设以下代码:
#include <stdio.h>
void __attribute__((optimize("O0"))) blabla(void) {
}
int main(void) {
blabla();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
如果我用它编译它clang
得到这个错误:
test2.c:3:21: warning: unknown attribute 'optimize' ignored [-Wattributes]
void __attribute__((optimize("O0"))) blabla(void) {
^
1 warning generated.
Run Code Online (Sandbox Code Playgroud)
然后我使用谷歌(以及)stackoverflow找出所需的属性clang
,因为他们中的许多不在标准(我知道).
我找到了这个帖子: 在clang中,你如何使用每个函数的优化属性?
如果我尝试该属性,optimize("0")
我会收到此错误:
test2.c:3:21: warning: unknown attribute 'optimize' ignored [-Wattributes]
void __attribute__((optimize("0"))) blabla(void) {
^
1 warning generated.
Run Code Online (Sandbox Code Playgroud)
如果我尝试该属性,optnone
我会收到此错误:
test2.c:3:21: warning: unknown attribute 'optnone' ignored [-Wattributes]
void __attribute__((optnone)) blabla(void) {
^
1 warning …
Run Code Online (Sandbox Code Playgroud) 我有一个小的 WIN32 C 应用程序,我在其中使用该KBDLLHOOKSTRUCT
结构。此结构包含用于按下键的 VK 代码。
我尝试将其转换为 ASCII 字符。为此,我使用了 Function MapVirtualKey
,它运行良好。
唯一的问题是,一个 VK 代码可以保留多个字符。例子:
在我的键盘(瑞士-德语)上存在 key-char .。如果我按Shift+.然后它会创建一个:
. VK 代码是相同的。那没问题,我还可以检查是否Shift被按下或被Caps Lock激活。
我唯一的问题是:我怎样才能得到字符 ':'?我需要这样的功能:
GetKeyChar(vkCode, shift)
我需要这个来获得键盘的“正常”和“移位”值。当然,我可以对此进行硬编码,但我不喜欢以这种方式进行。
我有很多像下面的图像(只有白色和黑色):
我最后的问题是找到匹配良好的椭圆.不幸的是,真正使用过的图像并不像这样.它们可能会变形一些,这使得椭圆匹配可能更难.
我的想法是找到"断点".我在下面的图片中标记它们:
也许这些点可以帮助匹配省略号.最终结果应该是这样的:
有人知道可以用什么算法来找到这些断点吗?或者甚至更好地进行良好的椭圆匹配?
非常感谢你
我只是有一个关于 Dropout 层的非常普遍的问题。Dropout“过滤”多久更新一次?
对于每个训练示例?还是每个小批量?还是每个时代?
非常感谢