我正在阅读有关关系Fisher Kernel的论文,该论文涉及贝叶斯逻辑程序以计算Fisher分数,然后使用SVM获取每个数据项的类标签.
我没有机器学习的强大背景.有人可以让我知道如何实现端到端关系Fisher内核以及它期望的输入类型吗?我找不到任何简单的逐步流程来显示这个实现.我可以使用SVM等库(例如libsvm),但我想知道端到端的流程(尽可能简单的语言).任何帮助将受到高度赞赏.
我试图理解叉子,并尝试在C中跟随:
#include<stdio.h>
#include <unistd.h>
void forker()
{
printf("%d: A\n",(int)getpid());
fork();
wait();
printf("%d: B\n",(int)getpid());
printf("%d: C\n",(int)getpid());
fork();
wait();
printf("%d: D\n",(int)getpid());
}
int main(void)
{
forker();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当我编译并运行结果a.out时,这是我观察到的:
> ./a.out
3560: A
3561: B
3561: C
3562: D
3561: D
3560: B
3560: C
3563: D
3560: D
Run Code Online (Sandbox Code Playgroud)
但是,当我执行以下操作时:
> ./a.out > t.txt
Run Code Online (Sandbox Code Playgroud)
奇怪的事发生在:
> cat t.txt
3564: A
3565: B
3565: C
3566: D
3564: A
3565: B
3565: C
3565: D
3564: A
3564: B
3564: C
3567: …Run Code Online (Sandbox Code Playgroud) 我有一个文件,其中包含以下格式的行:
w1#1#x w2#4#b w3#2#d ......
行中的每个单词(标记)(例如w1#1#x)由3个部分组成,第一个显示一些索引(在这种情况下为w1),第二个是整数(在这种情况下为1),第三个是一个字符(在这种情况下为x)
现在,对于每个单词(标记),我需要打印一个额外的字段,它将根据第二和第三部分的值计算(即第四部分将是第二和第三部分的函数),输出文件应该看起来像:
w1#1#x#f1 w2#4#b#f2 w3#2#d#f3 ...
哪里
f1 =函数(1,x),f2 =函数(4,b),f3 =函数(2,d)
现在,使用sed模式我可以识别每个单词(令牌)中的组件,例如,
echo $ line | sed"s /([^#] )#([^#])#([^#]*)/\1#\ 2#\ 3/g"
其中\ 2和\ 3是模式的一部分(由于此链接,我将它们称为模式的一部分)
现在,我需要使用\ 2和\ 3来计算第四部分.我已经定义了一个shell函数getInfo(),它接受2个参数并执行所需的计算并返回第4部分.问题是在sed命令中插入此函数.我试过以下:
echo $ line | sed"s /([^#] )#([^#])#([^#]*)/\1#\ 2#\ 3`getInfo\2\3`/g"
但这不起作用.Shell没有接收模式的部分作为参数.
所以问题是:
如何将模式的sed 部分传递给shell(函数)?
我可以轻松编写一个shell脚本,它会逐行拆分行并执行所需的工作,然后将文件缝合回来,但我真的很感激shell是否可以从sed命令中的sed 接收模式的一部分作为参数.
问候,
Salil Joshi
考虑一个简单的HashMap<Integer,Integer>.如何获取存储的所有值,这些键是5的倍数?我对工作Java和Collections现在有一段时间了,但突然我无言以对.
任何帮助将受到高度赞赏.
问候,
萨里尔