可以肯定的是c++20
,根据即将到来的标准,根据最近的科隆ISO C ++会议的一份Reddit报告,我们将能够指定模板的概念,并且对于每个类/功能模板,我们将能够设置其类型的约束。 。但是,在文档和教程中(例如here),我找不到适用于多类型用例的正确语法。
假设我们有一个多类型的概念:
template<typename T1, typename T2>
concept AreEqComparable = requires(T1 a, T2 b) {
{ a == b } -> bool;
};
Run Code Online (Sandbox Code Playgroud)
假设我想在两个不同类型之间定义一个简单的比较函数。我怎样才能做到这一点?更具体地说,我应该在???
下面的代码部分中写什么:
???
bool are_equal(T1 a, T2 b) { return a == b; }
Run Code Online (Sandbox Code Playgroud)
我在这里,这里,甚至这里都没有找到关于这个案例的参考。我已经随机尝试过类似的东西:
/* 1 */ template<AreEqComparable T1, T2>
/* 2 */ AreEqComparable<T1, T2>
/* 3 */ template<AreEqComparable<T1, T2>>
Run Code Online (Sandbox Code Playgroud)
但是所有这些都引发语法错误。我认为答案应该在Bjarne Stroustrup的规范 …
假设您有25个对象,并且可以按照您甚至不知道的某些条件对其中的5个进行排序.使用这台机器的成本非常昂贵(一次发射需要1美元),那么分类所有物品的最低成本是多少?
我目前的解决方案非常简单(类似于合并排序的想法):
因此,一般来说,我们必须支付26美元(26次发射).
问题:有没有办法让它更便宜(以最少的发布次数排序)?
我有一组排列,我想删除同构排列.
我们有多
S
组排列,其中每组包含K
排列,每个排列表示为N
元素和数组.我目前正在将其保存为数组int pset[S][K][N]
,其中S
,K
并且N
是固定的,并且N大于K.两组排列,
A
并且B
,如果存在排列,则是同构的,P
将元素转换A
为B
(例如,ifa
是元素的集合A
,然后P(a)
是集合的元素B
).在这种情况下,我们可以说P
制造A
和B
同构.
我目前的算法是:
s1 = pset[i]
和s2 = pset[j]
,使得i < j
s1
和s2
)从numered 1
到K
.这意味着每个元素都可以表示为s1[i]
或s2[i]
,在哪里0 < i < K+1
T
的K …
在使用C++开发小型跨平台游戏时,我遇到了以下问题:当玩家在没有触摸键盘或鼠标的情况下玩USB游戏手柄时,计算机会在玩游戏时自动进入睡眠状态.
在Windows中,可以使用SetThreadExecutionState
功能轻松完成.在OS X中,我认为它可以完成UpdateSystemActivity
但尚未测试.
但问题是,在Linux中,没有像DE之类的通用API.我发现,在GNOME,你可以通过使用电话的DBus停止自动悬浮Inhibit()
和Uninhibit()
,但它仅适用于侏儒.
那么,是否存在以编程方式交叉DE方式(或非DE方式,例如,如果用户使用类似
dwm
或类似的东西awesome wm
)来阻止Linux系统(使用Xorg并且当然没有root访问权限)睡眠或打开屏幕保护程序更改用户配置文件?
PS:不要以为它太复杂了,但不知道有多么不幸.
我有一个 tensorflow 模型,它采用不同大小的输入图像:
inputs = layers.Input(shape=(128,None,1), name='x_input')
<tf.Tensor 'x_input:0' shape=(?, 128, ?, 1) dtype=float32>
Run Code Online (Sandbox Code Playgroud)
当我将此模型转换为 tensorflow-lite 时,它会抱怨:
converter = tf.lite.TFLiteConverter.from_frozen_graph(
graph_def_file, input_arrays, output_arrays)
tflite_model = converter.convert()
ValueError: None is only supported in the 1st dimension.
Tensor 'x_input_1' has invalid shape '[None, 128, None, 1]'.
Run Code Online (Sandbox Code Playgroud)
我无法将图像缩放到固定大小。我看到的唯一解决方案是将图像填充到某个最大尺寸并在图表中使用该尺寸,但这似乎很浪费。有没有其他方法可以使 tensorflow-lite 与动态图像尺寸一起工作?这个限制有什么理由吗?谢谢。
初步信息:根据最近的ISO C ++委员会旅行报告,将在最新版本的GNU GCC中添加并提供条件分支的[[ likely ]]
和[[ unlikely ]]
属性C++20
(您可以在在线编译器wandbox.org上使用它)。
问题:以下构造
if (cond) [[ likely ]] { ... }
Run Code Online (Sandbox Code Playgroud)
相当于以下一个?
if (__builtin_expect(bool(cond), 1)) { ... }
Run Code Online (Sandbox Code Playgroud)
为了有效使用它,不同编译器之间是否存在性能差异或实现细微差别?
我正在将训练循环迁移到Tensorflow 2.0 API。在紧急执行模式下,tf.GradientTape
替换tf.gradients
。问题是,它们具有相同的功能吗?特别:
在功能上gradient()
:
output_gradients
等效grad_ys
吗?colocate_gradients_with_ops
?aggregation_method
,gate_gradients
是tf.gradients
?是否由于缺乏使用而弃用?可以使用2.0 API中的其他方法替换它们吗?急切执行中是否需要它们?功能jacobian()
等效tf.python.ops.parallel_for.gradients
吗?
我想知道是否有办法知道 tflite 中特定节点的输入和输出列表?我知道我可以获得输入/输出详细信息,但这不允许我重建Interpreter
. 所以我要做的是:
interpreter = tf.lite.Interpreter(model_path=model_path)
interpreter.allocate_tensors()
input_details = interpreter.get_input_details()
output_details = interpreter.get_output_details()
interpreter.get_tensor_details()
Run Code Online (Sandbox Code Playgroud)
最后 3 个命令基本上为我提供了似乎没有必要信息的字典。
所以我想知道是否有办法知道每个节点的输出去哪里?当然Interpreter
以某种方式知道这一点。我们可以吗?谢谢。
有什么方法可以以编程方式防止Google Colab在超时时断开连接?
下面介绍导致笔记本计算机自动断开连接的情况:
Google Colab笔记本的空闲超时为90分钟,绝对超时为12小时。这意味着,如果用户超过90分钟未与其Google Colab笔记本进行交互,则其实例将自动终止。另外,Colab实例的最大生命周期为12小时。
自然,我们希望自动将最大值从实例中挤出,而不必不断地手动与之交互。在这里,我将假定常见的系统要求:
我要在此指出,这种行为不会违反 Google Colab的使用条款,尽管根据其常见问题解答(我们的常见问题),我们不鼓励这样做(简而言之:从道德上讲,如果您真的不需要用尽所有GPU,就不行了) )。
我当前的解决方案非常愚蠢:
有更好的方法吗?
我需要为我的Web服务实现一个聊天应用程序(用Django + Rest api框架编写).在做了一些谷歌搜索之后,我发现可用的Django聊天应用程序都已弃用,不再受支持了.我找到的所有DIY(自己动手)解决方案都使用Tornado或Twisted框架.
所以,我的问题是:是否可以制作基于Django的同步聊天应用程序?我需要使用任何异步框架吗?我在后端编程方面经验很少,所以我希望尽可能简单.
python ×5
c++ ×4
tensorflow ×3
algorithm ×2
c++20 ×2
keras ×2
linux ×2
arrays ×1
c ×1
c++-concepts ×1
chat ×1
django ×1
permutation ×1
screensaver ×1
sleep ×1
sorting ×1
templates ×1
tornado ×1
xorg ×1