小编Meh*_*ran的帖子

使用HttpWebRequest类在上传和下载时显示百分比的进度

我试图上传和下载使用(在相同的请求)发送到服务器HttpWebRequestC#,并由于数据的大小相当大(考虑网速),我想展示如何工作的远做的用户又有多少是离开(不是几秒钟,而是百分比).

我已经阅读了几个尝试实现这一点的例子,但没有一个显示任何进度条.它们都只是用来async在上传/下载时不阻止UI.而且他们主要关注上传/下载,没有人尝试将它们都包含在同一个请求中.

由于我使用.Net 4作为我的目标框架,我async自己无法实现一个方法.如果您要建议任何异步,请使用Begin...方法而不是await关键字!谢谢.

c# progress httpwebrequest

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

即使请求成功,fetch的响应也是空的

我正在尝试使用fetch函数从客户端Javascript代码中的服务器检索数据.我正在使用whatwg-fetchChrome中命名的polyfill版本的fetch (内部支持fetch).

这是我调用函数的方式:

//Called in a page loaded as http://localhost:3236/
fetch("http://localhost:8080/list", {
         mode: 'no-cors',
         credentials: "include", 
    })
    .then(function(response) {
        return response.json();
    });
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我的应用程序服务器与我的资源服务器不同,因此我必须为CORS设置选项.问题是response没有内容:

{
    body: null,
    bodyUsed: false,
    headers: Headers,
    ok: false,
    status: 0,
    statusText: "",
    type: "opaque",
    url: "",
}
Run Code Online (Sandbox Code Playgroud)

在我转向网络面板并找到发送的请求的情况下,看起来状态为200并且所请求的数据一切正常.

我怎样才能找到问题所在?

javascript cross-domain cors fetch-api

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

如何在Elasticsearch中的同一查询中使用`gt`和`fields`

在我之前的问题中,我fieldsquery_string查询中介绍了它,以及它如何帮助我搜索文档的嵌套字段.

{
  "query": {
    "query_string": {
      "fields": ["*.id","id"],
      "query": "2"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

但它只适用于匹配,如果我想做一些比较怎么办?经过一些阅读和测试,似乎range不支持查询fields.有没有什么方法可以range在一个日期上执行查询,而不是可以分散在文档层次结构中任何位置的字段?

即考虑以下文件:

{
    "id" : 1,
    "Comment" : "Comment 1",
    "date" : "2016-08-16T15:22:36.967489",
    "Reply" : [ {
        "id" : 2,
        "Comment" : "Inner comment",
        "date" : "2016-08-16T16:22:36.967489"
    } ]
}
Run Code Online (Sandbox Code Playgroud)

是否有搜索date字段(如date > '2016-08-16T16:00:00.000000')匹配给定文档的查询,因为嵌套字段,而没有明确地给出地址Reply.date?像这样的东西(我知道以下查询是不正确的):

{
    "query": {
        "range" : {
            "date" : {
                "gte" : "2016-08-16T16:00:00.000000",
            },
            "fields": ["date", "*.date"] …
Run Code Online (Sandbox Code Playgroud)

nested elasticsearch elasticsearch-query

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

在响应中获取状态零而不是 401

我正在向需要身份验证的服务发送请求,由于我当前的状态不是,我收到了 401 响应。我想看看我是否可以在我的代码中处理这个问题,在客户端并用 Typescript 编写:

this.http.post(url, body, options).catch(e => {
    if (e.status === 401) {
        //Handle 401
    }
    return Observable.throw(e);
});
Run Code Online (Sandbox Code Playgroud)

但问题是e.status即使从网络面板我可以看到响应的状态实际上是 401 ,它也是零。这是 Angular 的问题还是我做错了什么?

这是 的返回值JSON.strigify(e)

{
    "_body": { "isTrusted": true },
    "status": 0,
    "ok": false,
    "statusText": "",
    "headers": {},
    "type": 3,
    "url": null
}
Run Code Online (Sandbox Code Playgroud)

顺便说一句,我使用的是 Angular 4.0.0(核心和 http)。

由于上面发送的发布请求,这是我在控制台中遇到的错误:

(2) POST http://192.168.2.10:8080/test 401 ()
XMLHttpRequest cannot load http://192.168.2.10:8080/test. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://192.168.2.10:4200' is therefore …
Run Code Online (Sandbox Code Playgroud)

http-status-code-401 rxjs angular

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

Cognito 重定向回我的 URL 时找不到刷新令牌

我正在使用 AWS 的 Cognito 进行测试。在这一点上,我可以找回我的IdToken, AccessToken, 并且RefreshToken像这样:

$ aws cognito-idp admin-initiate-auth --user-pool-id us-east-1_XXXXXXXX --client-id XXXXXXXXXXXXXXXXXXXXXXX --auth-flow ADMIN_NO_SRP_AUTH --auth-parameters USERNAME=XXXXXXXXXXXXX,PASSWORD=XXXXXXXXXXXXX --region us-east-1
Run Code Online (Sandbox Code Playgroud)

然后我在这样的 URL 上尝试了默认网页(由 Cognito 提供):

https://test-cognito.auth.us-east-1.amazoncognito.com/login?response_type=token&client_id=XXXXXXXXXXXXXXXXXXXXXX&redirect_uri=https://example.com
Run Code Online (Sandbox Code Playgroud)

此 URL 将带我到一个页面,我必须在其中进行身份验证,一旦该过程完成,它将带我回到我redirect_url附加的前面提到的 ID:

https://example.com#id_token=XXXXX.XXXXXX.XXXXXX&access_token=XXXXXX.XXXXXXX.XXXXXXX&expires_in=3600&token_type=Bearer
Run Code Online (Sandbox Code Playgroud)

但是没有任何迹象refresh_tokenrefresh_token在这种情况下我怎样才能得到我的?

amazon-web-services jwt amazon-cognito refresh-token

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

无法将文件 scp 到 gcloud:权限被拒绝(公钥)

gcloud我正在尝试使用以下命令将文件复制到计算实例中:

gcloud compute scp ./file.txt.bz2 root@instance-1:/home/mehran/
Run Code Online (Sandbox Code Playgroud)

我面临一个错误:

No zone specified. Using zone [us-central1-c] for instance: [instance-1].
root@###.###.###.###: Permission denied (publickey).
lost connection
ERROR: (gcloud.compute.scp) [/usr/bin/scp] exited with return code [1].
Run Code Online (Sandbox Code Playgroud)

我也没有root测试过:

gcloud compute scp ./file.txt.bz2 instance-1:/home/mehran/
Run Code Online (Sandbox Code Playgroud)

并面临同样的错误。在这种情况下,我可以 ssh毫无问题地进入同一个实例:

gcloud compute ssh instance-1
Run Code Online (Sandbox Code Playgroud)

scp google-cloud-platform gcloud

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

应用程序负载平衡器与API网关

AWS附带有一项称为的服务Application Load Balancer,它可能会触发lambda函数。调用此类lambda函数的方法是通过向ALB发送HTTP / HTTPS请求。

现在我的问题是,这与使用API​​网关有何不同?以及什么时候应该在API网关上使用ALB?

amazon-web-services aws-api-gateway aws-load-balancer

5
推荐指数
2
解决办法
1559
查看次数

为什么Javascript中的递归异步函数会导致堆栈溢出?

请考虑以下代码段:

function f() {
  return new Promise((resolve, reject) => {
    f().then(() => {
      resolve();
    });
  });
}

f();
Run Code Online (Sandbox Code Playgroud)

也可以这样写:

async function f() {
  return await f();
}

f();
Run Code Online (Sandbox Code Playgroud)

如果运行给定的两个代码中的任何一个,则将遇到此错误:

(node:23197) UnhandledPromiseRejectionWarning: RangeError: Maximum call stack size exceeded
Run Code Online (Sandbox Code Playgroud)

我的问题是为什么?在回答我的问题之前,请考虑一下我的论点:

我了解递归的概念,以及在没有停止条件的情况下它如何导致堆栈溢出。但是我在这里的论据是,一旦f();执行了第一个,它将返回a Promise并退出堆栈,因此此递归永远不会遇到任何堆栈溢出。对我来说,这应与以下行为相同:

while (1) {}
Run Code Online (Sandbox Code Playgroud)

当然,如果我这样写,它将得到解决:

function f() {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      f().then(() => {
        resolve();
      });
    }, 0);
  });
}

f();
Run Code Online (Sandbox Code Playgroud)

这是一个不同的故事,我对此毫无疑问。

[更新]

不好,我忘了提到我正在node v8.10.0服务器端进行测试。

javascript stack-overflow recursion promise async-await

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

当张量中有未知元素时,操纵张量形状的正确方法是什么?

假设我有一个形状张量,(None, None, None, 32)我想将其重塑(None, None, 32)为中间维度是原始维度的两个中间维度的乘积。这样做的正确方法是什么?

python keras tensorflow

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

如何确保训练阶段不会面临 OOM?

标题中的问题已完成。“如何确保训练阶段不会面临 OOM?”

只是一些旁注,根据我的经验,有两种 OOM 情况。一种是当您的模型和小批量所需的内存大于您拥有的内存时。在这种情况下,训练阶段永远不会开始。解决此问题的解决方案是使用较小的批量。尽管如果我能计算出我的硬件可以为某个特定模型管理的最大批量大小,那就太好了。但即使我在第一次尝试时找不到最大的批量大小,我也总能通过反复试验找到它(因为该过程立即失败)。

我面临 OOM 的第二种情况是训练过程开始时,它会持续一段时间。甚至可能是几个时代。但后来不知什么原因,它面临着OOM。对我来说,这种情况令人沮丧。因为它随时可能发生,您永远不会知道正在进行的培训是否会结束。到目前为止,我已经失去了几天的训练时间,而我认为一切都在进行中。

我认为一些澄清是有序的。首先,我说的是带有 GPU 的个人计算机。其次,GPU专用于计算,不用于显示。如果我错了,请纠正我,但我相信这意味着训练过程在不同的时间点需要不同的内存大小。怎么会这样?再一次,我如何确保我的训练阶段不会面临 OOM?

以这次跑步为例:

3150/4073 [======================>.......] - ETA: 53:39 - loss: 0.3323
2019-10-13 21:41:13.096320: W tensorflow/core/common_runtime/bfc_allocator.cc:314] Allocator (GPU_0_bfc) ran out of memory trying to allocate 60.81MiB (rounded to 63766528).  Current allocation summary follows.
Run Code Online (Sandbox Code Playgroud)

经过三个小时的训练,TensorFlow 要求的内存超出了我的硬件所能提供的范围。我的问题是,为什么在这一点而不是在进程开始时增加内存分配?

[更新]

鉴于 Eager 模式的已知问题,我将对我的案例进行一些说明。我不是在急切模式下编码。这是我的训练代码的样子:

strategy = tf.distribute.OneDeviceStrategy(device="/gpu:0")
training_dataset = tf.data.Dataset.from_tensor_slices(...)
validation_dataset = tf.data.Dataset.from_tensor_slices(...)

with strategy.scope():
    model = create_model()

    model.compile(optimizer='adam', loss='categorical_crossentropy')

    pocket = EarlyStopping(monitor='val_loss', min_delta=0.001,
                           patience=5, verbose=1,
                           restore_best_weights = True)

    history = model.fit(training_dataset.shuffle(buffer_size=1000).batch(30),
                        epochs=3,
                        callbacks=[pocket],
                        validation_data=validation_dataset.shuffle(buffer_size=1000).batch(30),
                        workers=3, …
Run Code Online (Sandbox Code Playgroud)

machine-learning out-of-memory keras tensorflow

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