我正在考虑使用类似索引的matlab访问C++数组,例如a[1 , :].这将非常方便.
我重载了operator [],但似乎不可能有a[1, : ]语法.
我想出的解决方案是编写一个脚本,该脚本预处理C++源代码并a[1, :]转换为C++函数,例如col(a, 1).但这似乎很费力.
有没有人有更好的解决方案?谢谢!!
我试图导入cudamat.然后我遇到了错误:
OSError: libcublas.so.3: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我试图找到libcublas
/usr/local/MATLAB/MATLAB_Production_Server/R2013a/bin/glnxa64/libcublas.so.5.0
/usr/local/MATLAB/MATLAB_Production_Server/R2013a/bin/glnxa64/libcublas.so.5.0.40
/usr/local/cuda-5.5/lib/libcublas.so
/usr/local/cuda-5.5/lib/libcublas.so.5.5
/usr/local/cuda-5.5/lib/libcublas.so.5.5.22
/usr/local/cuda-5.5/lib/libcublas_device.a
/usr/local/cuda-5.5/lib64/libcublas.so
/usr/local/cuda-5.5/lib64/libcublas.so.5.5
/usr/local/cuda-5.5/lib64/libcublas.so.5.5.22
/usr/local/cuda-5.5/lib64/libcublas_device.a
/usr/local/cuda-5.5/targets/x86_64-linux/lib/libcublas.so
/usr/local/cuda-5.5/targets/x86_64-linux/lib/libcublas.so.5.5
/usr/local/cuda-5.5/targets/x86_64-linux/lib/libcublas.so.5.5.22
/usr/local/cuda-5.5/targets/x86_64-linux/lib/libcublas_device.a
Run Code Online (Sandbox Code Playgroud)
我能做什么?对不起,我不熟悉ubuntu.谢谢 !
首先设置PATH和LD_LIBRARY_PATH
$ export PATH=/usr/local/cuda-5.5/bin:$PATH
$ export LD_LIBRARY_PATH=/usr/local/cuda-5.5/lib64:$LD_LIBRARY_PATH
Run Code Online (Sandbox Code Playgroud)
然后建立一个符号链接
sudo ln -s /usr/local/cuda-5.5/lib64/libcublas.so /usr/local/cuda-5.5/lib64/libcublas.so.3
Run Code Online (Sandbox Code Playgroud) 我刚开始研究循环神经网络.我在Elman的网络上找到了三个信息来源(Elman 1991).
根据第一资源,不更新从隐藏到上下文/上下文到隐藏层的权重.
从第二个资源,它还将这些更新设置为0,这意味着它不会更新权重.
但是从Stackoverflow上的第三个资源,用户声称"随着训练的进行,上下文神经元神经元值本身不会更新.在训练期间,它们与下一层之间的权重会更新."
我理解上下文神经元在时间t保存隐藏神经元的值,并将其(与输入神经元一起)馈送到t + 1处的隐藏神经元.但我们是否必须更新其间的权重?
只是出于好奇.如果允许使用 - >通过指针调用函数,为什么不通过 - >调用operator()?
#include <iostream>
using namespace std;
struct point {
int x;
int y;
void show() {cout<< x <<" : "<< y <<endl;}
void operator()() {cout<< x <<" : "<< y <<endl;}
};
int main()
{
point p;
p.x=1; p.y=2;
p();
point* ptr = &p;
ptr->show();
(*ptr)(); // ok
ptr->(); // error
return 0;
}
Run Code Online (Sandbox Code Playgroud)
错误:
main.cpp:20:9: error: expected unqualified-id before '(' token
ptr->();
Run Code Online (Sandbox Code Playgroud)
我知道ptr-> func()等价于(*ptr).func(),因此可以直接从指针调用重载运算符,而无需解除引用.函数和重载运算符之间的内部差异是什么?
这是一个非常简单的问题.
说我有一个功能:
int fun(int n){
if (n > 3)
return n;
else
fail(); // this function outputs error message
// and terminates the program
// no return value
}
Run Code Online (Sandbox Code Playgroud)
然后,对于n <= 3的情况,没有返回值.怎么解决这个问题?