小编Dre*_*rew的帖子

纯粹依赖 pyproject.toml 有哪些缺点?

假设您有一个 Python 程序,仅使用pyproject.toml. 有什么缺点?为什么在这种情况下使用setup.pyor ?setup.cfg

python setuptools setup.py python-packaging pyproject.toml

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

遗传算法选择和交叉问题

我已经使用自己的GA一段时间,我使用随机选择和精英(前10%左右)来获得50%的人口.然后我进行交叉以产生接下来的50%,然后进行突变.这听起来很奇怪,但它让我在我的问题上足以让我满意它.

我想开始使用更精细的选择方法,特别是排名选择.我也想采用交叉概率.

我的问题是:

  1. 在进行排名选择时,每个人只允许选择一次吗?
  2. 交叉后父母通常会发生什么?他们会被孩子取代还是他们也会进入下一代?

genetic-algorithm

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

在 TensorFlow 中平铺变量张量是否会创建新变量?

我有一个(2x1)可变张量,我定义为:

W = tf.Variable(tf.random_normal([2, 1]))
Run Code Online (Sandbox Code Playgroud)

因此 (2x1) 向量中有 2 个变量。然后我继续像这样平铺这个张量:

W = tf.tile(W,tf.constant([1,3]))
Run Code Online (Sandbox Code Playgroud)

我们现在有一个 (2x3) 张量。我的问题是这样的:

我们知道有 6 个唯一变量吗?或者这 2 个唯一变量是否平铺在 3 列上?

python machine-learning tensorflow

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

将MPI_Scatter与C++一起使用 - 对不同的通信器进行散射

在C++中,使用MPI_Scatter的示例是:

MPI::COMM_WORLD.Scatter(sendbuf, 100, MPI::INT, recvarr, 100,MPI::INT, root);
Run Code Online (Sandbox Code Playgroud)

这将每个进程的内容分散sendbuff到100个单独的进程recvarr中,但仅限于MPI World通信器.

与C中的MPI_Scatter不同,C++版本没有通信器的输入.如何修改此示例以适用于任何通信器,而不仅仅是MPI_COMM_WORLD?

例如,说我的传播者被命名comm.如何sendbuffcomm通信组内而不是MPI_COMM_WORLD中分散?

c++ mpi

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

分配类成员变量时的 C++ 分段错误

我在命名空间“TEST_NS”下的类“Test”中有一个函数“testfunc()”。

在主程序中,我创建了一个指向“Test”的指针,并希望指向“testfunc()”函数。没问题...

我将私有变量“foo”声明为“Test”的成员,并且“testfunc()”函数尝试更改该变量。这会导致分段错误。

为什么会出现这种情况?


我创建了一个简单的示例来展示我的问题。foo = 1;当我在 test.cpp 中设置时发生段错误

以下是文件:

主要.cpp:

#include <iostream>
#include "test.h"

using namespace std;

int main () {
  TEST_NS::Test * test;
  test->testfunc();
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

测试.h:

#include <iostream>

namespace TEST_NS
{
  class Test
  {

  int foo;

  public:
    Test();
    ~Test();

    void testfunc();
  };
}
Run Code Online (Sandbox Code Playgroud)

测试.cpp:

#include <iostream>
#include "test.h"

using namespace TEST_NS;

Test::Test() { }

Test::~Test() { }

void Test::testfunc()
{
  std::cout << "This is testfunc()!" << std::endl;

  foo = 1;

}
Run Code Online (Sandbox Code Playgroud)

该代码是用

g++ main.cpp …
Run Code Online (Sandbox Code Playgroud)

c++ pointers segmentation-fault

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

C++公共变量范围混乱

如果在类中声明公共变量,则可以从也是该类成员的任何函数中修改该变量.

如果在函数内声明变量,则其范围不会超出函数的范围.

那么公共类变量本质上是一个全局变量,可以被类的任何成员访问和更改吗?

如果是这样的话,全局变量和公共变量之间有什么区别?

c++ scope global-variables public-members difference

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

C++ new []运算符创建长度=长度+ 1的数组?

为什么C++中的new []操作符实际上创建了一个长度为+ 1的数组?例如,请参阅以下代码:

#include <iostream>

int main()
{
    std::cout << "Enter a positive integer: ";
    int length;
    std::cin >> length;

    int *array = new int[length]; // use array new.  Note that length does not need to be constant!
    //int *array;

    std::cout << "I just allocated an array of integers of length " << length << '\n';

    for (int n = 0; n<=length+1; n++)
    {
      array[n] = 1; // set element n to value 1
    }

    std::cout << "array[0] " << …
Run Code Online (Sandbox Code Playgroud)

c++ new-operator dynamic-memory-allocation

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