小编zan*_*ngw的帖子

instanceof Array 比 JavaScript 中的 isArray 更好吗?

从那两个帖子:

有几种方法可以检查一个对象是否是数组

  1. variable instanceof Array

  2. Array.isArray(variable)

有人告诉我,第二种方法比第一种方法好。有没有人能说出它的原因?

javascript arrays instanceof

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

为什么我在Theano的辍学功能大大减慢了卷积?

我正在学习Theano.我写了一个简单的dropout函数如下:

import theano.tensor as T
srng = T.shared_randomstreams.RandomStreams()

def drop(input, dropout=0.0):
    if T.gt(dropout, 0.):
        retain_prob = 1 - dropout.astype('floatX')
        mask = srng.binomial(n=1, p=retain_prob, size=input.shape, dtype='floatX')
        return input * mask / retain_prob
    else:
        return input
Run Code Online (Sandbox Code Playgroud)

当我将此函数应用于前两个卷积层的输入时,每个图像上花费的平均时间从0.5ms增加到大约2.5ms!有谁知道这种剧烈减速的原因是什么?

我正在使用安装了cuDNN的GTX 980卡.

cuda neural-network theano deep-learning conv-neural-network

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

为什么可以检索原型但是__proto__在JavaScript中是未定义的?

现在我学习JavaScript prototype__proto__,并发现一些有用的链接

__proto__ VS. JavaScript中的原型

__proto__与constructor.prototype有何不同?

我可以在Chrome下的以下代码中获取__proto__对象的值f.

var Foo = function() {}
var f = new Foo();
f.__proto__
> Foo {} 
Run Code Online (Sandbox Code Playgroud)

但是,设置后Foo.prototype.__proto__null,价值__proto__undefined.

var Foo = function() {}
Foo.prototype = {name: 'cat', age: 10};
Foo.prototype.__proto__ = null;
var f = new Foo();
f.__proto__
> undefined 
Run Code Online (Sandbox Code Playgroud)

但我能得到的价值f.name,这是cat.这是我的理解,因为值f.name可以检索,__proto__对象f应该指向Foo.prototype.为什么价值f.__proto__undefined

javascript prototype google-chrome v8

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

空尝试捕获如何影响性能?

我知道清空try... catch程序不是很好的做法。但是,我想知道为什么空白try... catch会影响JavaScript的性能?

以下代码段:

function test() {
    var start = new Date();

    for (var i = 0; i < 100000000; i++){
        var r = i % 2;
    }

    console.log(new Date() - start);

    try {

    } catch (ex) {

    }
}
Run Code Online (Sandbox Code Playgroud)

运行时间结果709低于Chrome

但是,如果没有空白try... catch

function test3() {
    var start = new Date();

    for (var i = 0; i < 100000000; i++){
        var r = i % 2;
    }

    console.log(new Date() - start); …
Run Code Online (Sandbox Code Playgroud)

javascript performance google-chrome try-catch performance-testing

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

将最后一个元素移动到数组中的第二个项目的最快方法

我有数组 arrayData = ['abc', 'bcd', 'cdf', 'dfg']

有没有最快的方法将项目移动到数组的顶部?

所以最后的结果应该是 arrayData = ['abc', 'dfg' , 'bcd', 'cdf' ]

javascript

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

Google-cloud-dataflow:为什么管道使用DirectRunner运行两次?

给定如下数据集

{"slot":"reward","result":1,"rank":1,"isLandscape":false,"p_type":"main","level":1276,"type":"ba","seqNum":42544}
{"slot":"reward_dlg","result":1,"rank":1,"isLandscape":false,"p_type":"main","level":1276,"type":"ba","seqNum":42545}
Run Code Online (Sandbox Code Playgroud)

我尝试通过过滤这些json数据type:ba并将其插入到使用python sdk的bigquery中

ba_schema = 'slot:STRING,result:INTEGER,play_type:STRING,level:INTEGER'

class ParseJsonDoFn(beam.DoFn):
    B_TYPE = 'tag_B'
    def process(self, element):
        text_line = element.trip()
        data = json.loads(text_line)

        if data['type'] == 'ba':
            ba = {'slot': data['slot'], 'result': data['result'], 'p_type': data['p_type'], 'level': data['level']}
            yield pvalue.TaggedOutput(self.B_TYPE, ba)

def run():
    parser = argparse.ArgumentParser()
    parser.add_argument('--input',
                      dest='input',
                      default='data/path/data',
                      help='Input file to process.')
    known_args, pipeline_args = parser.parse_known_args(argv)
    pipeline_args.extend([
      '--runner=DirectRunner',
      '--project=project-id',
      '--job_name=data-job',
    ])
    pipeline_options = PipelineOptions(pipeline_args)
    pipeline_options.view_as(SetupOptions).save_main_session = True
    with beam.Pipeline(options=pipeline_options) as p:
        lines = p | ReadFromText(known_args.input)

        multiple_lines = ( …
Run Code Online (Sandbox Code Playgroud)

google-cloud-dataflow apache-beam

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

Array.of()和Array.from()的用法怪异?

有两个新的方法ArrayES6Array.of()Array.from()本页中将介绍它们的不同用法。

但是,我Array.of对这一行的用法感到困惑

// usage of Array.of
console.log(
    Array.of( "things", "that", "aren't", "currently", "an", "array" )
); // ["things", "that", "aren't", "currently", "an", "array"]
Run Code Online (Sandbox Code Playgroud)

如果我们按照以下方式去做,

console.log(
    [ "things", "that", "aren't", "currently", "an", "array" ]
); // ["things", "that", "aren't", "currently", "an", "array"]
Run Code Online (Sandbox Code Playgroud)

我们可以得到与相同的结果console.log(Array.of(...))Array.of在这里使用有什么好处吗?

也混淆了Array.from的用法

var divs = document.querySelectorAll("div");
console.log(
    Array.from( divs )
);
Run Code Online (Sandbox Code Playgroud)

如果Array.from以上代码中没有该怎么办。

var arr = …
Run Code Online (Sandbox Code Playgroud)

javascript arrays ecmascript-6

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

如何在golang中对特殊的json字符串进行base64编码?

我需要在golang中通过base64编码以下字符串

"{\n\t\"signature\" = \"ZwXG56AezlHRTBhL8cTqA==\";\n\t\"purchase-info\" = \"RXRjL0dNVCI7Cn0=\";\n\t\"environment\" = \"Sandbox\";\n\t\"pod\" = \"100\";\n\t\"signing-status\" = \"0\";\n}"

我尝试做到如下

rec = []byte("{\n\t\"signature\" = \"ZwXG56AezlHRTBhL8cTqA==\";\n\t\"purchase-info\" = \"RXRjL0dNVCI7Cn0=\";\n\t\"environment\" = \"Sandbox\";\n\t\"pod\" = \"100\";\n\t\"signing-status\" = \"0\";\n}")
str := base64.StdEncoding.EncodeToString(rec)
fmt.Println(str)
Run Code Online (Sandbox Code Playgroud)

输出量

ewoJInNpZ25hdHVyZSIgPSAiWndYRzU2QWV6bEhSVEJoTDhjVHFBPT0iOwoJInB1cmNoYXNlLWluZm8iID0gIlJYUmpMMGROVkNJN0NuMD0iOwoJImVudmlyb25tZW50IiA9ICJTYW5kYm94IjsKCSJwb2QiID0gIjEwMCI7Cgkic2lnbmluZy1zdGF0dXMiID0gIjAiOwp9

但是,它失败了。因为结果与通过https://www.base64encode.org/的base64结果不同,所以

e1xuXHRcInNpZ25hdHVyZVwiID0gXCJad1hHNTZBZXpsSFJUQmhMOGNUcUE9PVwiO1xuXHRcInB1cmNoYXNlLWluZm9cIiA9IFwiUlhSakwwZE5WQ0k3Q24wPVwiO1xuXHRcImVudmlyb25tZW50XCIgPSBcIlNhbmRib3hcIjtcblx0XCJwb2RcIiA9IFwiMTAwXCI7XG5cdFwic2lnbmluZy1zdGF0dXNcIiA9IFwiMFwiO1xufQ==

然后我以这种方式尝试

data1 := []byte(`{\n\t\"signature\" = \"ZwXG56AezlHRTBhL8cTqA==\";\n\t\"purchase-info\" = \"RXRjL0dNVCI7Cn0=\";\n\t\"environment\" = \"Sandbox\";\n\t\"pod\" = \"100\";\n\t\"signing-status\" = \"0\";\n}`)
str1 := base64.StdEncoding.EncodeToString(data1)
fmt.Println(str1)
Run Code Online (Sandbox Code Playgroud)

输出:

e1xuXHRcInNpZ25hdHVyZVwiID0gXCJad1hHNTZBZXpsSFJUQmhMOGNUcUE9PVwiO1xuXHRcInB1cmNoYXNlLWluZm9cIiA9IFwiUlhSakwwZE5WQ0k3Q24wPVwiO1xuXHRcImVudmlyb25tZW50XCIgPSBcIlNhbmRib3hcIjtcblx0XCJwb2RcIiA9IFwiMTAwXCI7XG5cdFwic2lnbmluZy1zdGF0dXNcIiA9IFwiMFwiO1xufQ==

现在结果是正确的。

如何转换原始字符串

[]byte("{\n\t\"signature\" = \"ZwXG56AezlHRTBhL8cTqA==\";\n\t\"purchase-info\" = \"RXRjL0dNVCI7Cn0=\";\n\t\"environment\" = \"Sandbox\";\n\t\"pod\" = \"100\";\n\t\"signing-status\" = \"0\";\n}")
Run Code Online (Sandbox Code Playgroud)

[]byte(`{\n\t\"signature\" = \"ZwXG56AezlHRTBhL8cTqA==\";\n\t\"purchase-info\" = \"RXRjL0dNVCI7Cn0=\";\n\t\"environment\" = \"Sandbox\";\n\t\"pod\" = \"100\";\n\t\"signing-status\" = …
Run Code Online (Sandbox Code Playgroud)

base64 json go

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

什么是'坏Ptr'在Visual C++中的意思?

对于C++,当我们检查指针是否有效时,通常我们会执行以下操作:

if (p == NULL){
     // error handling
}
Run Code Online (Sandbox Code Playgroud)

但是,在VC++中,即使p不是NULL(又名0),它也是0x00000004,也就是Bad Ptr.然后导致异常,我们知道这个地址是受保护的,不能被覆盖.

我在这里搜索过类似的问题,但我没有得到答案.

我的问题是:

  1. 当Bad Ptr发生时,为什么不将此指针设置为0?
  2. 由于Bad Ptr的值不为零,如何在VC++中检查指针是否有效?

c++ pointers window visual-c++

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

在Go中使用base64.StdEncoding或base64.RawStdEncoding解码base64字符串

我们知道,在 gobase64.StdEncodingbase64.RawStdEncoding. 如何正确使用其中之一来解码一个base64字符串?如果调用了不正确的编码方法。例如,如果RawStdEncoding使用 来解码一个字符串,就会出现StdEncoding错误。illegal base64 data at input byte xxx

每个文档

const (
    StdPadding rune = '=' // Standard padding character
    NoPadding  rune = -1  // No padding
)
Run Code Online (Sandbox Code Playgroud)

RawStdEncoding 是标准原始、未填充的 Base64 编码,如 RFC 4648 第 3.2 节中定义。这与 StdEncoding 相同,但省略了填充字符。

我们是否应该通过检查 padding 是否结束来区分它们StdPadding?代码片段

    lastByte := s[len(s)-1:]
    if lastByte == string(base64.StdPadding) {
        base64.StdEncoding.DecodeString(s)
    } else {
        base64.RawStdEncoding.DecodeString(s)
    }
Run Code Online (Sandbox Code Playgroud)

这是一种优雅的方式吗?或者我错过了什么?解码 Base64 字符串的优雅方法是什么?

更新:

也许是一种通过错误检查来完成此操作的原始方法,如下所示

    rawByte, err := base64.StdEncoding.DecodeString(s)
    if err …
Run Code Online (Sandbox Code Playgroud)

base64 go

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