小编Geo*_*rge的帖子

带有两个不同类型参数的隐式模板类型推导

假设以下情况:

类型A和类型B,B可以隐式转换为A但反之则是不真实的.

我有一个功能

template<class T>
void do_stuff(T a, T b);
Run Code Online (Sandbox Code Playgroud)

我想这样调用所述函数:

do_stuff(A{}, B{});
Run Code Online (Sandbox Code Playgroud)

这里的问题是编译器无法推断出类型,而是说:

template argument deduction/substitution failed
Run Code Online (Sandbox Code Playgroud)

我可以这样调用我的函数:

do_stuff<A>(A{}, B{});
Run Code Online (Sandbox Code Playgroud)

但这对用户来说更烦人.

或者我可以做这样的事情:

template<class T, class M>
void do_stuff(T a, M b);
Run Code Online (Sandbox Code Playgroud)

但是b继续以它的快乐方式成为B类(具有先前的调用).

理想情况下,我想要像:

template<class T, class M = T>
void do_stuff(T a, M b);
Run Code Online (Sandbox Code Playgroud)

要么:

template<class T@INSERT MAGIC SO THAT T IS DEDUCED AS BEING THE TYPE OF ARGUMENT NR 1@>
void do_stuff(T a, T b);
Run Code Online (Sandbox Code Playgroud)

这样的事情可能吗?

c++ templates metaprogramming template-meta-programming c++17

15
推荐指数
3
解决办法
1123
查看次数

等效于 `setup.py` 中的 `--find-links`

相当于in的--find-links/-f标志。pipsetup.py

我知道dependency_links存在,但这需要指向一个特定的文件,我想要类似的东西-f可以指向一个链接列表,可以根据版本和操作系统从中选择包。

python pip setuptools easy-install python-3.x

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

为什么Java中的引用赋值是原子的?

据我所知,引用赋值在64位JVM中是原子的.现在,我假设jvm不在内部使用原子指针对此进行建模,因为否则就不需要原子引用.所以我的问题是:

是java/Scala的"规格"中的原子引用分配并保证会发生,或者它是一个很幸运的巧合,大多数时候都是这样吗?

对于编译为JVM字节码的任何语言(例如clojure,Groovy,JRuby,JPython等),是否隐含了原子引用赋值?

如果不在内部使用原子指针,引用赋值如何是原子的?

java concurrency jvm scala atomic

9
推荐指数
2
解决办法
2148
查看次数

为什么AWS应用程序负载均衡器需要两个子网?

尝试在aws上创建应用程序负载平衡器时(到目前为止,我使用的是经典的就可以了),我收到以下消息:

At least two subnets must be specified

为什么ALB要求我指定两个子网?有什么方法可以创建它并将其用于单个子网中的实例之间的LB?

amazon-ec2 amazon-web-services aws-load-balancer

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

PWA 通知如何重定向到已安装的应用程序(如果存在)

这看起来相当基本,但我在这里找不到答案。

MDN 官方文档显示,获取导航回应用程序的通知应如下所示:

self.addEventListener("notificationclick", (event) => {
    event.notification.close();
  
    event.waitUntil(
      clients
        .matchAll({
          type: "navigate",
        })
        .then((clientList) => {
          for (const client of clientList) {
            if (client.url === "/" && "focus" in client) return client.focus();
          }
          if (clients.openWindow) return clients.openWindow("/");
        }),
    );
  });
Run Code Online (Sandbox Code Playgroud)

它在浏览器中工作正常,但如果我将网站安装为 PWA,它只会重定向到浏览器中打开的网站(如果存在)或重定向到空白页面。

有什么方法可以获取通知以重定向到其“来源”,或者理想情况下重定向到已安装的 PWA。

注意:我不清楚此示例中的 Web Worker 是否与已安装的 PWA 一起在隔离环境中运行,或者仍在主浏览器环境中运行 - 这似乎与其客户端列表相关。

javascript web-worker service-worker progressive-web-apps service-worker-events

7
推荐指数
0
解决办法
171
查看次数

std :: any用于无法复制构造的对象

我有一个持有unique_ptr的对象,因此不能进行复制而不进行深度复制(我不想要).

我想让std :: any持有那个对象,但我发现的唯一选择是让std :: any保持一个指针,这会增加一个无用的间接,或者使我的对象有一个唯一的ptr.下面的代码有望说明我的观点:

//Compiled with clang++ -std=c++2a; clang version 5.0.0
#include <iostream>
#include <any>
#include <memory>

struct A {
        std::unique_ptr<int> m = std::make_unique<int>(11);
        A(A&& a): m(std::move(a.m)) {}
        A() {}
};

struct B {
        std::shared_ptr<int> m = std::make_shared<int>(11);
};


template<class T>
void use_any_ptr() {
        std::any a{new T{}};
        std::cout << *(std::any_cast<T*>(a)->m) << std::endl;
}

template<class T>
void use_any() {
        std::any a{T{}};
        std::cout << *(std::any_cast<T>(a).m) << std::endl;
}


int main() {
        use_any_ptr<A>(); // Workaround using a pointer
        use_any<B>(); // Workaround …
Run Code Online (Sandbox Code Playgroud)

c++ templates template-meta-programming c++17

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

默认情况下,python 的多处理队列是“无限”的吗?

python 的多处理队列的文档:https : //docs.python.org/2/library/multiprocessing.html#multiprocessing.Queue

不像 queue.Queue 那样清楚:https ://docs.python.org/3/library/queue.html

当 maxsize 参数没有提供给构造函数时,关于队列的大小是否是“无限的”(例如,在程序可以设法分配内存的任何可能范围内)。

是这样吗?

python python-multithreading python-3.x python-multiprocessing python-3.6

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

使用 Huggingface 的蒸馏器模型生成文本

一段时间以来,我一直在为 Huggingface 的 DistilBERT 模型苦苦挣扎,因为文档似乎非常不清楚及其示例(例如https://github.com/huggingface/transformers/blob/master/notebooks/Comparing-TF-and-PT -models-MLM-NSP.ipynbhttps://github.com/huggingface/transformers/tree/master/examples/distillation)非常厚,他们展示的东西似乎没有很好的记录。

我想知道这里是否有人有任何经验并且知道一些很好的代码示例,用于他们模型的基本 Python 内使用。即:

  • 如何将模型的输出正确解码为实际文本(无论我如何改变它的形状,标记器似乎都愿意解码它并总是产生一些[UNK]标记序列)

  • 如何实际使用他们的调度器+优化器来训练一个简单的文本到文本任务的模型。

nlp machine-learning pytorch distilbert huggingface-transformers

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

有没有办法将pytorch张量转换为tensorflow张量

https://github.com/taoshen58/BiBloSA/blob/ec67cbdc411278dd29e8888e9fd6451695efc26c/context_fusion/self_attn.py#L29

我需要使用上述链接中的 multi_Dimension_attention,该链接是在 TensorFlow 中实现的,但我使用的是 PyTorch,所以我可以将 Pytorch 张量转换为 TensorFlow 张量,还是必须在 PyTorch 中实现它。

我试图在这里使用的代码我必须将“rep_tensor”作为 TensorFlow 张量类型传递,但我有 PyTorch 张量

def multi_dimensional_attention(rep_tensor, rep_mask=None, scope=None,
                                keep_prob=1., is_train=None, wd=0., activation='elu',
                                tensor_dict=None, name=None):

    # bs, sl, vec = tf.shape(rep_tensor)[0], tf.shape(rep_tensor)[1], tf.shape(rep_tensor)[2]

    ivec = rep_tensor.shape[2]
    with tf.variable_scope(scope or 'multi_dimensional_attention'):
        map1 = bn_dense_layer(rep_tensor, ivec, True, 0., 'bn_dense_map1', activation,
                              False, wd, keep_prob, is_train)
        map2 = bn_dense_layer(map1, ivec, True, 0., 'bn_dense_map2', 'linear',
                              False, wd, keep_prob, is_train)
        # map2_masked = exp_mask_for_high_rank(map2, rep_mask)

        soft = tf.nn.softmax(map2, 1)  # bs,sl,vec
        attn_output = tf.reduce_sum(soft …
Run Code Online (Sandbox Code Playgroud)

attention-model pytorch mindsdb

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

如何使用 github actions 发布 pipwheels

也许是一个有点宽泛的问题,但我认为这对于任何使用 github 的 python 包的维护者来说都是相关的,并且可以显着减少他们的工作量,所以希望权力能够让它成立。

本质上,在我看来:

  • 为 python 构建和发布轮子很好,但有时它们必须特定于操作系统才能正常工作(即构建在类似的操作系统/环境上)
  • Github actions 提供了广泛的操作系统来运行作业(目前免费),因此它可以用来构建这些轮子
  • 可以轻松使用 Github actions 通过 twine 发布 sidst

所以我的问题是:

  • 有没有一种直接的方法来为一堆环境构建轮子(例如在 github actions 中使用 OS/env 矩阵),然后通过 github actionse.g 发布它们。通过将它们聚集在一处然后运行一些 twine 命令?问题似乎是无法通过 github 操作在不同的 envs/vms 设置之间进行通信。

我可以想到涉及中间 s3 存储桶的各种解决方案,但对于 pypi 和/或 github 操作在这方面的工作方式,我可能犯了很大的错误,因此我正在浏览一个非常简单的问题。

python github pypi python-wheel github-actions

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