小编Lam*_*mda的帖子

Target需要语言方言"CXX17"(带编译器扩展),但CMake不知道用于启用它的编译标志

所以我一直在尝试将其<filesystem>纳入我的项目中,这似乎是一个比我想象的更大的问题. <filesystem>应该是c ++ 17的一部分,我需要将该定义添加到我的CMakeList中.

我的根CmakeLists看起来像这样:

MESSAGE(“In src CMAKELIST”)

#
# Build everything in include/ directory
add_subdirectory(include)
#

#set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
#set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

## Main executable target
add_executable(cmakeDemo main.cpp)

# These libraries get built in include/*/, CMake will auto-set required
# compiler flags and include paths from their definitions
target_link_libraries(cmakeDemo record ${portaudio})
target_link_libraries(cmakeDemo database)
target_link_libraries(cmakeDemo match)
target_link_libraries(cmakeDemo spectogram)
Run Code Online (Sandbox Code Playgroud)

我在其中添加了c ++ 17定义,但是当我编译系统时,我收到此错误:

 make 
“InsrcCMAKELIST”
“InincludeCMAKELIST”
“IndatabaseCMAKELIST”
“InmatchCMAKELIST”
“InrecordCMAKELIST”
“InspectogramCMAKELIST”
/home/lamda/soundcloud/src/include/spectogram/base/base.h
“outspectogramCMAKELIST”
-- Configuring done …
Run Code Online (Sandbox Code Playgroud)

c++ cmake c++17

8
推荐指数
2
解决办法
5406
查看次数

图中的拐角和边缘检测

我正在尝试编写角点和边缘检测方案,该方案应该能够检测图形中的角和边缘.

图形数据结构是从2d char数组构建的,它看起来像这个例子的大小是10行和9 col.(白色空间填补了其余的遗失,我无法在边界添加空格......?)

      ...
 ..Y.....
 ..Y   .
  ZYZ.Z.Z
  .Y ....
  .M
  ..
Run Code Online (Sandbox Code Playgroud)

为节点中的每个字符创建一个节点,完整的图形存储为a vector<Node> graph.

每个节点都是这样定义的

struct Node
{
    char character;
    pair<int,int> position;
    bool lock;
    vector<Vertex> adjacent;
};

struct Vertex
{
   Node *current;
   Node *nextTo;

};
Run Code Online (Sandbox Code Playgroud)

所以..我有很多节点但是在我的用例中有些节点是冗余的,每个节点都有一个bool lock=>告诉系统应该忽略这些节点.

我想忽略的节点是那些.在地图中具有角色并放置在角落位置的节点(节点本身有2个邻居(大小矢量邻居== 2)),或者.是在两个角落之间具有角色的节点.如果在两个角之间出现其他角色,则仅将角设置为锁定.当遍历角落的相邻节点(寻找第二个角落),并且一个节点有4个相邻节点时,只有看到的第一个角落被设置为被锁定.

所以..我把它写成了一些代码,最终看起来像这样.

 for(auto graph_it = begin(graph); graph_it != end(graph); graph_it++)
    {
        if(graph_it->adjacent.size() == 2 && graph_it->character == '.')
        {
            vector<Node*> trace;
            cout << "corner found " <<"("<< graph_it->position.first <<","<< graph_it->position.second << ")" << …
Run Code Online (Sandbox Code Playgroud)

c++ algorithm graph

5
推荐指数
1
解决办法
608
查看次数

这种基本卷积是在普通的卷积神经网络中进行的吗?

我目前正在研究这篇论文(第53页),其中建议卷积以特殊方式完成.

这是公式:

在此输入图像描述

这是他们的解释:

如图4.2所示,所有输入特征映射(假设总共为I),O_i(i = 1,...,I)被映射到多个特征映射(假设总共为J),Q_j(j = 1) ,基于多个局部滤波器(总共I×J)的卷积层,w_ {ij}(i = 1,...,I; j = 1,···,J) ).映射可以表示为信号处理中众所周知的卷积运算.假设输入特征图都是一维的,则卷积层中的一个特征图的每个单元可以被计算为等式\ ref {eq:equation}(上面的等式).

其中o_ {i,m}是第i个输入特征映射O_i的第m个单位,q_ {j,m}是卷积层的第j个特征映射Q_j的第m个单位,w_ { i,j,n}是权重向量的第n个元素,w_ {i,j},将输入的第i个特征映射连接到卷积层的第j个特征映射,F称为滤波器大小,即卷积层的每个单元接收的输入频带的数量.

到现在为止还挺好:

我基本上从中理解的是我在这张图片中试图说明的内容.

在此输入图像描述

在我看来,他们正在做的是实际处理所有数据点到F,以及所有要素图.基本上在xy方向上移动,并从中计算点.

对于尺寸为(I×F)的2d图像而言,基本上不是2d-卷积,其滤波器等于图像尺寸?重量似乎没有任何不同在这里有任何重要性..?

那我为什么在这里问这个..

我试图实现这一点,我不确定他们在做什么,实际上只是基本的卷积,其中滑动窗口提供不断提供新数据,或者他们不是正常的卷积,这意味着我需要设计一个特殊的层做这个操作?...

math convolution conv-neural-network keras

5
推荐指数
1
解决办法
203
查看次数

keras - TypeError:'int'对象不可迭代

我试图测试一个网络,但似乎有一个恼人的错误,我不太清楚我理解.

import keras
from keras.models import Sequential
from keras.optimizers import SGD
from keras.layers.core import Dense, Activation, Lambda, Reshape,Flatten
from keras.layers import Conv1D,Conv2D,MaxPooling2D, MaxPooling1D, Reshape
from keras.utils import np_utils
from keras.models import Model
from keras.layers import Input, Dense
from keras.layers import Dropout
from keras import backend as K
from keras.callbacks import ReduceLROnPlateau
from keras.callbacks import CSVLogger
from keras.callbacks import EarlyStopping
from keras.layers.merge import Concatenate
from keras.callbacks import ModelCheckpoint
import random
import numpy as np


window_height = 8
filter_size=window_height
pooling_size = 28 …
Run Code Online (Sandbox Code Playgroud)

python numpy keras

4
推荐指数
1
解决办法
9493
查看次数

在元组向量中找到特定的元组元素?

我在元组向量中找到元组元素时遇到问题.

我有一个vector<tuple<int,int,int,int>>我需要在向量中找到位置的地方get<0>(vector) = 0.我需要这个位置,因为我需要从该位置的元组中提取其他值.

get<0>是唯一的,并且只会在向量中出现一次.

我怎么做?

c++ tuples vector c++11

2
推荐指数
3
解决办法
6523
查看次数

迭代通过元组c + 17样式的向量不起作用?

我目前正在寻找整齐的方式,我可以迭代这个元组的向量..

这就是我目前正在做的事情?

#include <experimental/filesystems>
#include <tuple>
#include <iostream>
#include <vector>


std::tuple<std::experimental::filesystem::path, std::experimental::filesystem::file_status, std::size_t>
file_info(const std::experimental::filesystem::directory_entry &entry)
{

    const std::experimental::filesystem::file_status fs(std::experimental::filesystem::status(entry));
    return {entry.path(),
                fs,
                std::experimental::filesystem::is_regular_file(fs) ? std::experimental::filesystem::file_size(entry.path()) : 0u};

}



int main ()
{
    std::experimental::filesystem::path _path(string_dir_to_test_files);  // string_dir_to_test_files is just a string 
    std::experimental::filesystem::directory_entry dir_path(_path);
    if (std::experimental::filesystem::exists(_path))
    {
        std::cout << "exists() = " << std::experimental::filesystem::exists(_path) << std::endl;
        std::cout << "Number of files in directory: " << number_of_files(_path) << std::endl;
        std::vector<std::tuple<std::experimental::filesystem::path,std::experimental::filesystem::file_status, std::size_t>> items;
        std::transform(std::experimental::filesystem::directory_iterator(_path),{},back_inserter(items),file_info);
        for( auto const& index : items)
        {
            std::cout << …
Run Code Online (Sandbox Code Playgroud)

c++ for-loop code-readability c++17 structured-bindings

1
推荐指数
1
解决办法
601
查看次数

创建矩阵?

我正在尝试使用创建旋转矩阵Eigen::Matrix3d,但似乎无法准确地做到这一点.

void rot(double x,double y,double z)
{

    Eigen::Matrix3d x_r ((double)1,(double)0,(double)0,
                         (double)0,cos(x),-sin(x),
                         (double)0,sin(x),cos(x));

    Eigen::Matrix3d y_r (cos(y),(double)0,sin(y),
                        (double)0,(double)1,(double)0,
                         -sin(y),(double)0,cos(y));

    Eigen::Matrix3d z_r (cos(z),-sin(z),(double)0,
                         sin(z),cos(z),(double)0,
                         (double)0,(double)0,(double)1) ;

    Eigen::Matrix3d rot = z_r*y_r*x_r;

} 
Run Code Online (Sandbox Code Playgroud)

我出于某些奇怪的原因,我不能创建x_r,y_r,z_r?有人可以详细说明我做错了吗?

我收到的错误信息是:

error: no matching function for call to 'Eigen::Matrix<double, 3, 3>::Matrix(double, double, double, double, double, double, double, double, double)'
Run Code Online (Sandbox Code Playgroud)

首先我想我是因为我用的组合doubleint这就是为什么我在首位类型强制转换吧..

c++ matrix eigen c++11

0
推荐指数
1
解决办法
74
查看次数