小编Arc*_*yno的帖子

std :: array vs array performance

如果我想构建一个非常简单的数组

int myArray[3] = {1,2,3};
Run Code Online (Sandbox Code Playgroud)

我应该用std::array吗?

std::array<int, 3> a = {{1, 2, 3}};
Run Code Online (Sandbox Code Playgroud)

使用std :: array比使用常规的有什么好处?性能更高吗?更容易处理复制/访问?

c++ c++11 stdarray

53
推荐指数
6
解决办法
3万
查看次数

静态全局变量的奇怪行为

我知道这个程序没有以适当的方式使用静态变量,但它显示了如何重现我看到的行为:

Main.cpp:

int main(){
    MyObject* p = new MyObject();
    Header::i = 5;

    printf("i %i\n", Header::i);
    p->update();

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

MyObject.cpp:

MyObject::MyObject(){
}

void MyObject::update(){
    printf("i %i\n", Header::i);
}
Run Code Online (Sandbox Code Playgroud)

Extern.h:

namespace Header {
    static int i;
};
Run Code Online (Sandbox Code Playgroud)

我得到的输出是:

i : 5
i : 0
Run Code Online (Sandbox Code Playgroud)

为什么我没有得到5两个输出?这0是从哪里来的?你能解释静态变量是如何工作的吗?

c++ static global

28
推荐指数
6
解决办法
2495
查看次数

defaultdict:第一个参数必须是可调用的或无

我运行了以下代码:

from collections import defaultdict
lst = list(range(0,5))
d = defaultdict(lst)
Run Code Online (Sandbox Code Playgroud)

我收到了这个错误:

TypeError: first argument must be callable or None
Run Code Online (Sandbox Code Playgroud)

请帮忙

python defaultdict

12
推荐指数
3
解决办法
9868
查看次数

从gensim word2Vec获取权重矩阵

我在python中使用gensim word2vec包.我想检索WW'已跳过克学习期间学习权重矩阵.

在我看来,model.syn0给了我第一个,但我不知道我怎么能得到另一个.任何的想法?

我真的很想找到关于模型可访问属性的任何详尽文档,因为官方文档看起来并不精确(例如syn0没有被描述为属性)

python nlp machine-learning gensim word2vec

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

keras CNN:训练集和验证集相同,但准确度不同

我知道这是一件非常糟糕的事情,但我注意到使用 keras mobilenet 有一些奇怪的事情:

我使用相同的数据进行训练和验证集:

train_generator = train_datagen.flow_from_directory(
    train_dir,
    target_size=(IM_WIDTH, IM_HEIGHT),
    batch_size=batch_size,
    class_mode = "categorical"
)
validation_generator = train_datagen.flow_from_directory(
  train_dir,
  target_size=(IM_WIDTH, IM_HEIGHT),
  class_mode = "categorical"
)
Run Code Online (Sandbox Code Playgroud)

但我没有得到相同的准确度!

epoch 30/30 - loss: 0.3485 - acc: 0.8938 - val_loss: 1.7545 - val_acc: 0.4406

与验证集相比,我似乎过度拟合了训练集......但它们应该是相同的!这怎么可能?

deep-learning keras tensorflow

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

在凝聚聚类中指定最大距离(scikit learn)

使用聚类算法时,您始终必须指定关闭参数。

我目前正在使用 scikit learn 的凝聚聚类,我能看到的唯一关闭参数是集群的数量。

agg_clust = AgglomerativeClustering(n_clusters=N)
y_pred = agg_clust.fit_predict(matrix)
Run Code Online (Sandbox Code Playgroud)

但是我想找到一种算法,您可以在其中指定集群元素内的最大距离,而不是集群数量。因此,该算法将简单地聚集集群,直到达到最大距离。

有什么建议吗?

python algorithm hierarchical-clustering scikit-learn

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

Docker 构建缓存不断增长

在我的持续交付过程中,我每天晚上都会部署一个包含应用程序最新版本的容器。但随着每次迭代,docker 构建缓存都在增长......以下是每天晚上应用的命令:

docker rm $(docker stop $(docker ps -a -q --filter ancestor=myApplication --format="{{.ID}}")) 
docker rmi $(docker images -f "dangling=true" -q)
docker build -t myApplication . --rm
docker run -d -p 9090:8080 -v C:\localFolder:/usr/local/mountedFolder myApplication
Run Code Online (Sandbox Code Playgroud)

当我检查时docker system df,我发现构建缓存随着每次构建而增长。有没有办法确保删除未使用的缓存?

caching docker dockerfile

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

c ++:通过map进行双重迭代

我想迭代一个映射,但内部循环只是遍历元素的上半部分.使用矢量它看起来像这样:

for(auto element1 = myVector.begin() ; element1 != myVector.end() ; ++element1){
    for(auto element2 = element1 + 1; element2 != myVector.end() ; ++element2){
         //my stuff
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,如果地图element1 + 1返回错误no operator matches this operand..我相信它来自于元素未在地图中排序的事实.

那我怎么能这样做呢?我目前正在使用这种杂乱的解决方法,需要在每个循环中进行测试:

for(auto element1 = myMap.begin() ; element1 != myMap.end() ; ++element1){
    for(auto element2 = element1; element2 != myMap.end() ; ++element2){
         if(element->first != element2->first)
         //my stuff
    }
}
Run Code Online (Sandbox Code Playgroud)

c++ dictionary iterator

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

创建变量的别名/引用(JAVA)

我使用了很多 C++,但我对 Java 的工作方式感到很困惑:如果我有一个类

public class MyClass{
    private int[] myVariable;
     ...

    public int[] getVar(){
        return myVariable;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我想在其他地方使用我的变量:

public static void main(String[] args){
    MyClass myObject  = new MyClass();
    ...
    int[] temp = myObject.getvariable();
    // use of temp
    ...
}
Run Code Online (Sandbox Code Playgroud)

temp 是 myVariable 的副本还是引用?

你如何获得副本/参考?

java reference

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

openMp:parallelize std :: map iteration

有一些关于这个问题的帖子,但没有一个满足我.我没有openMp 3.0支持,我需要在地图上并行化迭代.我想知道这个解决方案是否有效:

auto element = myMap.begin();

#pragma omp parallel for shared(element)
for(int i = 0 ; i < myMap.size() ; ++i){
 MyKeyObject * current_first = nullptr;
 MyValueObject * current_second = nullptr;
#pragma omp critical
{
    current_first = element->first;
    current_second = element->second;
    ++element;
}

// Here I can use 'current' as in a usual loop
}
Run Code Online (Sandbox Code Playgroud)

所以我使用for循环只是为了确保线程将处理相同数量的地图元素.这是正确的猜测还是会失败?

ps:我正在开发visual studio 2012,所以如果你有关于如何让我的编译器支持openMp 3.0的提示,这也将解决我的问题..

c++ stdmap openmp

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