小编Cer*_*rno的帖子

Python中有空白缩进吗?

在开发过程中,有时需要临时注释掉代码块以用于测试目的.

有时这些注释需要重新缩进代码片段,这些代码片段可能在以后不会引入错误而难以收回.

我想知道是否有一个"空白缩进"操作符,与"通过"相反

例:

def func(x):
    if x == 0:
        print("Test")
Run Code Online (Sandbox Code Playgroud)

为了测试,我暂时评论"if",这打破了缩进:

def func(x):
    # if x == 0:
        print("Test")
Run Code Online (Sandbox Code Playgroud)

我想避免像这样的重新缩进,因为它只是一个临时的改变,它可能会弄乱更复杂的代码:

def func(x):
    # if x == 0:
    print("Test")
Run Code Online (Sandbox Code Playgroud)

问题:有这样的事吗?

def func(x):
    # if x == 0:
    force_indent:
        print("Test")
Run Code Online (Sandbox Code Playgroud)

当然,我可以做到以下几点,我只是想知道是否有某种成语或更好的方法来做到这一点:

def func(x):
    # if x == 0:
    if True:
        print("Test")
Run Code Online (Sandbox Code Playgroud)

python indentation

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

将类标签附加到Keras模型

我正在使用Keras Sequential模型来训练许多多类分类器.

在评估时,Keras输出置信度向量,我可以使用argmax推断出正确的类ID.然后我可以使用查找表来接收实际的类标签(例如字符串).

到目前为止,解决方案是加载训练的模型,然后单独加载查找表.由于我有很多分类器,我宁愿将两个结构保存在一个文件中.

所以我正在寻找的是一种将实际标签查找向量集成到Keras模型中的方法.这将允许我有一个分类器文件,它能够获取一些输入数据并返回该数据的正确类标签.

解决这个问题的一种方法是将模型和查找表存储在一个元组中,并将该元组写入一个pickle,但这似乎并不优雅.

python keras

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

如何在源代码中精确表达浮点常量

我有一些通过代码生成器生成的 C++11 代码,其中包含大量浮点数,并且我想确保编译值与生成器中的编译值完全相同(假设两者都依赖于相同的值)浮动 ISO 标准)

因此,我认为最好的方法是将值存储为十六进制表示形式,并将它们解释为代码中的浮点数。

编辑以澄清: 代码生成器获取浮点值并将它们转换为相应的十六进制表示形式。目标代码应该转换回浮点数。

它看起来像这样:

const unsigned int data[3] = { 0x3d13f407U, 0x3ea27884U, 0xbe072dddU};
float const* ptr = reinterpret_cast<float const*>(&data[0]);
Run Code Online (Sandbox Code Playgroud)

这有效并允许我以浮点形式访问所有数据元素,但我最近偶然发现这实际上是未定义的行为,并且仅有效,因为我的编译器按照我的预期方式解析了它:

https://gist.github.com/shafik/848ae25ee209f698763cffee272a58f8

https://en.cppreference.com/w/cpp/language/reinterpret_cast

该标准基本上表示reinterpret_cast不同类型的 POD 指针之间没有定义。

所以基本上我有三个选择:

  1. 使用memcopy并希望编译器能够对此进行优化

  2. 不将数据存储为十六进制值,而是以不同的方式存储。

  3. std::bit_cast从 C++20开始使用。

我无法使用 3),因为我坚持使用 C++11。

我没有资源来存储数据数组两次,所以我必须依靠编译器来优化它。因此,我不太喜欢 1),因为如果我更改编译器或编译器设置,它可能会停止工作。

所以我只剩下2):

是否有一种标准化的方法来在源代码中表达浮点值,以便它们在编译时映射到精确的浮点值?ISO 浮点标准是否以保证任何编译器都会遵循解释的方式定义了这一点?我想如果我偏离编译器期望的方式,我可能会冒使用我实际想要的数字的浮点“邻居”的风险。

如果有我忘记的选项 4,我也会采取其他想法。

c++ c++11 floating-point-conversion

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