小编Joh*_*ang的帖子

javascript中class和classname有什么区别?

为了找到某个类名的子对象,我必须创建自己的辅助函数

findChildrenByTagName = function(obj, name){
    var ret = [];
    for (var k in obj.children){
        if (obj.children[k].className === name){
            ret.push(obj.children[k]);
        }
    }
    return ret;
}
Run Code Online (Sandbox Code Playgroud)

它的工作原理的一个例子是

var li = document.createElement('li');
var input = document.createElement('input');
input.setAttribute('class','answer_input');
li.appendChild(input);
console.log(findChildrenByTagName(li,"answer_input"));
Run Code Online (Sandbox Code Playgroud)

但是,当我在上面的函数中按类替换className时,代码不起作用.所以我很自然地想知道class和className之间的区别.在谷歌上快速搜索并没有透露任何信息.

另外,返回通用对象的特定类名子项列表的最佳方法是什么?如果不存在,有没有办法将方法添加到所有对象,以便我可以调用

li.findChildrenByTagName("answer_input");
Run Code Online (Sandbox Code Playgroud)

而不是上面的全局函数?

javascript

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

如何使用 Dataset API 最大化张量流 GPU 训练中的 CPU 利用率?

我正在使用新的数据集 api 来训练一个简单的前馈 DL 模型。我对最大化训练速度感兴趣。由于我的网络规模不大,正如预期的那样,我看到 GPU 利用率较低。没事儿。但我不明白的是为什么CPU使用率也远未达到100%。我使用的是多 cpu/gpu 核心机器。目前,batch_size = 128 时,我的速度可达 140 步/秒。如果我缓存数据集,我最多可达 210 步(初始扫描后)。所以我希望通过足够的预取,我应该能够在没有缓存的情况下达到相同的速度。然而,使用各种预取和 prefetch_to_device 参数,我无法获得超过 140 步/秒的速度。我还将 num_parallel_calls 设置为 cpu 核心数,大约提高了 20%。

理想情况下,我希望预取线程位于与输入管道的其余部分不相交的 cpu 核心上,这样它提供的任何好处都是严格相加的。但从 cpu 使用情况分析来看,我怀疑预取和输入处理发生在每个核心上:

在此输入图像描述

有没有办法更好地控制CPU分配?我尝试过 prefetch(1)、prefetch(500) 和其他几个值(在批处理之后或数据集构建结束时),以及与 prefetch_to_device(gpu_device, batch_size = None, 1, 500 等) 结合使用)。到目前为止,不带 prefetch_to_device 的 prefetch(500) 效果最好。

为什么预取不会尝试耗尽我机器上的所有 cpu 功率?训练速度还有哪些其他可能的瓶颈?

非常感谢!

tensorflow tensorflow-datasets

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