结构化绑定错误组,与神经网络相关

我下载了一个多年未使用的库,用于神经进化增强拓扑(Neural Evolutionary Augmenting Topologies)。这是一个会进化的神经网络。它自带了很多错误(大概20到30个),我设法修复了所有错误,除了这些:

错误 C3694 结构化绑定声明中只能包含 ‘static’、’thread_local’、’auto’ 和 cv-qualifiers 等限定符

错误(活动)E2828 类型 “float” 没有可绑定的组件

错误(活动)E0413 从 “const std::tuple<float, float, float>” 到 “float” 的转换函数不存在 //这是数据集

错误(活动)E2825 结构化绑定声明中的无效限定符

以下是出现错误的代码:

const int x1 = 1;const int x2 = 2;const int y = 1;static constexpr int NumInput = 2;static constexpr int NumOutput = 1;static constexpr bool Bias = true;static constexpr float ThresholdFitness = 0.80f;static constexpr std::size_t PopulationSize = 100;using ParamConfig = EvolutionNet::DefaultParamConfig;using EvolutionNetT = EvolutionNet::EvolutionNet<NumInput, NumOutput, Bias, ParamConfig>;using Network = EvolutionNetT::NetworkT;using FitnessScore = EvolutionNet::FitnessScore;for (float&& [x1, x2, y] : dataset) { // const auto, 所有错误都在这里                network->setInputValue(0, x1);                network->setInputValue(1, x2);                network->feedForward<ParamConfig>();                const float output = network->getOutputValue(0);                assert(output >= 0.f && output <= 1.f);                score += 1.f - (std::abs(output - y));            }

我对结构化绑定一无所知,我只是想在其他项目中使用一些神经网络。这个东西文档不是很好,但我认为这只是一个for-each循环,除非结构化绑定与此有关。如何修复这些错误?谢谢你。


回答:

正如错误消息所说,结构化绑定中只允许使用 auto 类型限定符(和 cv-qualifiers),所以请将 float&& 替换为 auto&&

如果你对这种语法感到不舒服,你也可以不使用它。这只是语法糖。你可以使用 std::get 来访问 std::tuple 的各个元素的值,例如:

for(auto entry : dataset) {    auto x1 = std::get<0>(entry);    auto x2 = std::get<1>(entry);    auto y = std::get<2>(entry);    //...}

或者,如果你喜欢,你可以写出具体的类型而不是使用 auto。如果你想要元组中元素的引用而不是它们的值,请在适当的地方添加 &&/&/const

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注