小编all*_*tar的帖子

使用Keras的python生成器线程安全性

我正在使用Keras进行一些ML并使用此生成器来处理数据和标签:

def createBatchGenerator(driving_log,batch_size=32):
    batch_images = np.zeros((batch_size, 66, 200, 3))
    batch_steering = np.zeros(batch_size)
    while 1:
        for i in range(batch_size):
            x,y = get_preprocessed_row(driving_log)
            batch_images[i]=x
            batch_steering[i]=y
        yield batch_images, batch_steering
Run Code Online (Sandbox Code Playgroud)

当我在本地使用它时运行正常,但是当我在带有GPU的AWS g2.2xlarge上运行它时,我收到此错误"ValueError:generator already execution".有人可以帮我解决这个问题吗?

python generator

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

使用Sublime Text 3在Python 3中打印UTF-8

我有这个Python3代码尝试从utf-8编码文件中读取和打印:

f = open('mybook.txt', encoding='utf-8')
for line in f:
    print(line)
Run Code Online (Sandbox Code Playgroud)

当我使用Sublime Text 3构建时,我收到以下错误:

UnicodeEncodeError: 'ascii' codec can't encode character '\u2019' in position 18: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)

但是,当我用python3在终端中执行我的代码时,它工作文件.

我的构建配置是

{
"cmd": ["/usr/local/bin/python3", "$file"]
, "selector": "source.python"
, "file_regex": "file \"(...*?)\", line ([0-9]+)"
}
Run Code Online (Sandbox Code Playgroud)

如果我将其更改为:

f = open('mybook.txt', encoding='utf-8')
for line in f:
    print(line.encode('utf-8'))
Run Code Online (Sandbox Code Playgroud)

然后它会打印utf-8编码的字节串(我认为这是正在发生的事情).

b'Hello\n'
b'\xc2\xab\xe2\x80\xa2\n'
b'Goodbye'
Run Code Online (Sandbox Code Playgroud)

但我也不知道如何从这个到打印屏幕上的unicode字符......

另外,如果我按照一个python程序尝试更改这个env变量,则无法在sublime文本3中执行,但是在bash中成功它仍然无法修复它.

python utf-8 python-3.x sublimetext sublimetext3

14
推荐指数
2
解决办法
5909
查看次数

OpenID Connect为OAuth 2.0添加了什么(为什么OAuth 2.0不足以进行身份​​验证?)

我现在已经阅读了很多不同的文章,但我仍然不清楚OpenID Connect在OAuth 2.0之上提供的主要价值.

我的理解:
当通过OAuth 2.0流接收访问令牌时,客户端确实知道授权服务器已对用户进行了身份验证.似乎OpenID Connect只是添加带有用户信息的ID令牌 - 但该信息可以是访问令牌的一部分,也可以通过受保护资源(如单独的userDetails资源)获得.这似乎不足以证明OpenID Connect的创建,所以我确信我错过了一些东西......

谢谢你的帮助!

添加更多详细信息,以便评论.非常感谢你的帮助.

由于你的回答,我想我越来越近了.所以我回顾了这篇文章:http://oauth.net/articles/authentication/.它说"OAuth对用户一无所知".但是,在发出访问令牌之前,您信任相同的服务来验证最终用户.在"常见陷阱部分"中,本文讨论了为什么不能使用访问令牌进行身份验证.根据我的理解,我有以下问题:

访问令牌作为身份验证证据访问令牌是先前某点的身份验证证明.如果客户端确实想在获取访问令牌后的某个时刻对用户进行身份验证,为什么不重复现有的Oauth流,当前最终用户尝试访问客户端?

作为证据访问受保护资源 与上述相同 - 如果客户端需要在任何时候进行身份验证,请重复Oauth流.

注入访问令牌 不清楚OpenID如何帮助这一点

缺乏受众限制 为什么向天真的客户端提供有效的ID令牌以及访问令牌更加困难?这与服务器端流程有关吗?同样,如果需要,可以重复OAuth流程.

注入无效的用户信息 这似乎需要签名,而不是单独的令牌.如果OAuth流程通过HTTPS进行,是否为身份提供商添加任何安全性以对用户详细信息签署两次?

每个潜在身份提供者的不同协议 这似乎是公平的,但如果唯一的目的是用于用户信息的令牌的标准化,它似乎仍然很奇怪.

openid oauth oauth-2.0 openid-connect

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

使用JavaScript获取JSON响应并在网页上显示,测试JavaScript

我正在尝试使用以下功能创建一个JS应用程序:一个获取JSON文档并显示该文本的按钮.我正在阅读Elasticsearch教程,我提供的网址确实存在有效的JSON:

{"_index":"planet","_type":"hacker","_id":"xfSJlRT7RtWwdQDPwkIMWg","_version":1,"exists":true, "_source" : {"handle":"mark","hobbies":["rollerblading","hacking","coding"]}}
Run Code Online (Sandbox Code Playgroud)

使用下面的代码时......我收到了警报

[object Object]
Run Code Online (Sandbox Code Playgroud)

而不是具有完整JSON的警报.我打算采取下一步实际选择部分JSON的步骤,但我想至少先查看完整的文档......

有任何想法吗?先感谢您!

<!DOCTYPE html>
<html lang="en">
<head><title>Demo</title> <meta http-equiv="content-type" content="text/html; charset=utf-8" /></head>

<body>
  <input id="testbutton" type="button" value="Test" />
  <p id="results">results appended here: </p>

<script type="text/javascript" src="jquery-1.10.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
    $("#testbutton").click(function() {
        $.ajax({
            url: 'http://localhost:9200/planet/hacker/xfSJlRT7RtWwdQDPwkIMWg',
            dataType: 'json',
            success: function(data) {
                $("#results").append('all good');
                alert(data);
            },
             error: function() {
                $("#results").append("error");
                alert('error');
            }
        });
    });
});
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

javascript ajax jquery json

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

断言与编写单元测试

我读了这个关于何时使用断言的答案,基本上是说使用它来进行在生产中关闭的测试:适当使用断言

(Oracle 文档说As an added benefit, assertions serve to document the inner workings of your program, enhancing maintainability.这是有道理的,但我不清楚为什么它是额外的好处而不是唯一的好处。)

我的想法是:

  • 如果您想在开发过程中检查某些事情“永远不会发生”但在生产中关闭该检查,似乎它可以作为测试边缘情况的单元测试的一部分进行覆盖。
  • 我可以看到在经过大量手动测试的开发环境上进行断言的一些好处,因此您会获得一些好处,即以某种可能性出现边缘情况并且断言捕获它。但是,由于依赖于此而不是单元测试意味着您不能保证测试该边缘情况,因此您也不能保证它在生产中“永远不会发生”。因此,我更喜欢使用 try/if 以防它在生产过程中出现。
  • 因此,剩下的用例集似乎非常狭窄 - 当您无法编写有效的测试时断言,但非常有信心它不会在生产中出现,并且您非常关心这部分的性能你的代码。

我有什么误解?预先感谢您的帮助 :)

java assert

5
推荐指数
0
解决办法
1031
查看次数

Scala地图/ foreach中的下划线

你可以帮我理解下面第二种情况下下划线的作用吗?我猜它是为列表的每个元素定义一个匿名函数,但为什么这个函数没有像第一种情况那样被调用?

scala> List(1,2,3,4).foreach(x => println("*" * x))
*
**
***
****

scala> List(1,2,3,4).foreach(_ => println("*" * _))
$line25.$read$$iw$$iw$$iw$$iw$$$Lambda$1197/562203102@a632ae0
$line25.$read$$iw$$iw$$iw$$iw$$$Lambda$1197/562203102@a632ae0
$line25.$read$$iw$$iw$$iw$$iw$$$Lambda$1197/562203102@a632ae0
$line25.$read$$iw$$iw$$iw$$iw$$$Lambda$1197/562203102@a632ae0
Run Code Online (Sandbox Code Playgroud)

functional-programming scala

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

为什么将一组值类编译为一组对象?

据我了解,如果您创建一个值类的数组,您实际上是在创建一个对象数组,而不是包装的原语。这背后的原因是什么?

来源:

class Wrapper(val underlying: Int) extends AnyVal

class Main {
  val i: Int = 1
  val w: Wrapper = new Wrapper(1)
  val wrappers = Array[Wrapper](new Wrapper(1), new Wrapper(2))
  val ints = Array[Int](1, 2)
}
Run Code Online (Sandbox Code Playgroud)

javap输出:

public class Main {
  public int i();
  public int w();
  public Wrapper[] wrappers(); // <----why can't this be int[] as well
  public int[] ints();
  public Main();
}
Run Code Online (Sandbox Code Playgroud)

scala

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

验证集合中的元素,返回第一个无效元素的失败

如果我有一些验证功能:

def validateOne(a: A): Try[A]
Run Code Online (Sandbox Code Playgroud)

我现在想通过使用该validateOne函数来验证 A 的集合

def validateAll(all: List[A]): Try[List[A]]
Run Code Online (Sandbox Code Playgroud)

Failure一旦发现第一个元素无效,是否有一种很好的方法来返回 a ?

我现在这样做的方法是get在验证每个元素后调用。对于validateOne返回的第一个元素Failureget抛出包装异常......我捕捉到重新包装:

def validateAll(all: List[A]): Try[List[A]] = try {
  all.map(a => validateOne(a).get)
} catch {
  case e: MyValidationException => Failure(e)
}
Run Code Online (Sandbox Code Playgroud)

scala

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

从列表创建 C++ 离散分布

我正在尝试创建一个 std::discrete_distribution:

http://en.cppreference.com/w/cpp/numeric/random/discrete_distribution

我看到的所有例子都像上面的链接一样定义它 std::discrete_distribution<> d({40, 10, 10, 40});

但是{40, 10, 10, 40}我不想以编程方式而不是硬编码来执行此操作。

c++ std

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

协方差/逆变以及与消费者/生产者的关系

我读过有关协方差/逆变的这篇文章:http://julien.richard-foy.fr/blog/2013/02/21/be-friend-with-covariance-and-convvariance/

这些例子非常清楚.但是,我正在努力理解最后得出的结论:

如果查看Run [+ A]和Vet [-A]的定义,您可能会注意到类型A仅出现在Run [+ A]方法的返回类型中,并且仅出现在Vet方法的参数中[-A] ].更一般地,产生类型A的值的类型可以在A上变成协变(就像在Run [+ A]中那样),并且消耗类型A的值的类型可以在A上变为逆变(就像你对Vet所做的那样) -一个]).

从上面的段落中你可以推断出只有getter的类型可以是协变的(换句话说,不可变数据类型可以是协变的,Scala标准库的大多数数据类型就是这种情况),但可变数据类型必然不变(他们有吸气剂和设定者,所以他们都生产和消费价值).

生产者:如果某些东西产生类型A,我可以想象一个类型A的引用变量被设置为类型A的对象或A的任何子类型,但不是超类型,因此它可以是协变的.

消费者:如果某些东西消耗了A类,我猜这意味着类型A可以用作方法中的参数.我不清楚这与协方差或逆变有什么关系.

从示例中可以看出,将类型指定为协变/逆变会影响其他函数如何使用它,但不确定它如何影响类本身.

covariance

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