基本上,我希望我的自定义损失函数在通常的 MSE 和从不同索引中减去值的自定义 MSE 之间交替。
为了澄清,假设我有一个 [1, 2, 4, 5] 的 y_pred 张量和一个 [2, 5, 1, 3] 的 y_true 张量。在通常的 MSE 中,我们应该得到:
return K.mean(K.squared(y_pred - y_true))
Run Code Online (Sandbox Code Playgroud)
这将执行以下操作:
[1, 2, 4, 5] - [2, 5, 1, 3] = [-1, -3, 3, 2]
[-1, -3, 3, 2]² = [1, 9, 9, 4]
平均值([1, 9, 9, 4]) = 5.75
我需要我的自定义损失函数来选择这个平均值和其他从 y_pred 张量切换索引 1 和 3 之间的最小值,即:
[1, 5, 4, 2] - [2, 5, 1, 3] = [-1, 0, 3, 1]
[-1, 0, 3, …
我在尝试将指针用作另一个函数内的函数的参数时遇到了一些麻烦.我的目标是在每个函数中保留变量'counter'的值,换句话说,当最低函数声明'counter ++'时,它的值必须为程序中的每个其他'counter'变量递增.
我的代码看起来像这样:
int main(int argc, const char * argv[]) {
Hash tableHash;
char command[6];
int id = 0, counter = -1;
int flags[4] = {0, 0, 0, 0};
while(1) {
identifyCommand(command, id, &tableHash, flags, &counter);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
在我的.h内:
void identifyCommand(char* command, int id, Hash* tableHash, int* flag, int* counter){
scanf("%s", command);
/* ... */
if(strcmp(command, "INSERT") == 0){
scanf("%i", &id);
commandInsert(id, tableHash, counter, flag);
}
/* ... */
return;
}
void commandInsert(int id, Hash* tableHash, int* counter, …Run Code Online (Sandbox Code Playgroud)