我有一个C++代码,我在实例化一个unordered_map,然后使用cout打印它的值.这很好用.但是,当我尝试在gdb中运行它并打印unordered_map的值时,这给了我错误.下面是代码片段:
std::unordered_map<std::string,int> mymap = {
{ "Mars", 3000},
{ "Saturn", 60000},
{ "Jupiter", 70000 } };
std::cout<< mymap.at("Mars");
std::cout<< mymap["Mars"];
Run Code Online (Sandbox Code Playgroud)
上面的两个cout语句都打印了密钥"Mars"的unordered_map值.但是,当我使用gdb然后尝试使用以下语句在关键字"Mars"上打印mymap的值时,我会收到错误.
(gdb) print mymap.at("Mars")
Cannot resolve method std::unordered_map<std::basic_string<char,
std::char_traits<char>, std::allocator<char> >, int,
std::hash<std::basic_string<char, std::char_traits<char>,
std::allocator<char> > >, std::equal_to<std::basic_string<char,
std::char_traits<char>, std::allocator<char> > >,
std::allocator<std::pair<std::basic_string<char, std::char_traits<char>,
std::allocator<char> > const, int> > >::at to any overloaded instance
(gdb) print mymap["Mars"]
Cannot resolve function operator[] to any overloaded instance
Run Code Online (Sandbox Code Playgroud)
我使用gdb时没有出错.
我已经尝试在gdb中使用whatis mymap来查看mymap是否存在于当前上下文中并且它表示它存在.此外,我尝试初始化一个int变量并在gdb中打印它并打印它.我不明白unordered_map有什么问题.
我使用下面的语句来生成可执行文件
gsrivas4@TitanX01:~/lcode1$ g++ -std=gnu++11 -O0 -g test1.cpp -o test1.out
Run Code Online (Sandbox Code Playgroud) 我正在这里查看clipvalue, clipnorm, global_clipnorm参数的定义。我有一些与此相关的问题。参数的描述提到以下内容:tf.keras.optimizers.Adam
clipnorm: 漂浮。如果设置,每个权重的梯度将被单独裁剪,使其范数不高于该值。clipvalue: 漂浮。如果设置,每个权重的梯度将被裁剪为不高于该值。global_clipnorm: 漂浮。如果设置,则所有权重的梯度都会被剪裁,以便它们的全局范数不高于该值。问题:
\n我正在使用PIL和OpenCV包加载图像。使用 加载图像时的高度和宽度与使用 加载图像时的高度和宽度相反。以下是打印使用这两个包加载的图像的高度和宽度的代码。PILcv2
file = \'conceptual_captions/VL-BERT/data/conceptual-captions/val_image/00002725.jpg\'\n# load image using PIL\nimport PIL.Image\npil = PIL.Image.open(file).convert(\'RGB\')\nw, h = pil.size\nprint("width: {}, height: {}".format(w, h))\nRun Code Online (Sandbox Code Playgroud)\n打印输出\nwidth: 1360, height: 765
# now using cv2\nimport cv2\nim = cv2.imread(file)\nprint("height, width, channels: {}".format(im.shape)) \nRun Code Online (Sandbox Code Playgroud)\n打印输出height, width, channels: (1360, 765, 3)
我下载了图像并使用 Mac 上的信息选项检查了图像的大小。信息有width = 765和height =\xe2\x80\x8a1360,与方法报告的相同cv2。为什么PIL给出错误的图像尺寸?
当图像非常少时就会出现此问题。我链接的图像就是这样的一张图像。对于其余图像,PIL和报告的高度和宽度cv2是相同的。
我知道Caffe使用通用矩阵到矩阵乘法(GEMM),它是基本线性代数子程序(BLAS)库的一部分,用于执行卷积运算。将卷积转换为矩阵乘法运算。我已提及以下文章。https://petewarden.com/2015/04/20/why-gemm-is-at-the-heart-of-deep-learning/
我想了解Theano,Tensorflow,Pytorch等其他深度学习框架如何执行卷积运算。他们是否在后端使用类似的库。关于此主题可能有一些文章。如果有人可以指出我的意思,或者可以给出答案进行解释。
PS:我在datascience.stackexchange.com上发布了相同的问题。由于我在那儿没有得到答复,因此我也将其张贴在这里。如果有更好的论坛发布此问题,请告诉我。
我正在查看一个 Tensorflow 代码,该代码使用形状 = [] 的占位符将学习率输入到图形中,如下所示:
self.lr_placeholder = tf.placeholder(dtype=tf.float32, shape=[])
Run Code Online (Sandbox Code Playgroud)
我查看了 Tensorflow ( https://www.tensorflow.org/api_docs/python/tf/placeholder )的官方文档页面以了解 shape=[] 的含义,但无法获得形状设置为空的解释列表。如果有人可以解释这是什么意思。
下面是一个包含3个嵌套循环的代码.变量curs和tempv在最外层for循环的每次迭代中被重新声明.这应该给我错误,但我能够成功运行它没有错误的gcc 4.8.4.
for(int i = 0; i<lend; i++)
{
string curs = vstring[digits[i]-'0'];
vector<string> tempv;
for(int j = 0; j<v.size(); j++)
{
for(int k = 0; k<curs.size(); k++)
{
tempv.push_back(v[j] + curs[k]);
}
}
v = tempv;
}
Run Code Online (Sandbox Code Playgroud)
在for-loop中重新声明变量是否可以?我理解在C++中,变量不能在同一范围内重新声明.