小编Sre*_*A R的帖子

TypeError:在Python 3中打开Python 2 Pickle文件时,需要一个类似字节的对象,而不是'str'

我试图在Python 3中打开一个pickle文件,其代码在Python 2中有效,但现在给我一个错误.这是代码:

with open(file, 'r') as f:
    d = pickle.load(f)

TypeError                                 Traceback (most recent call last)
<ipython-input-25-38f711abef06> in <module>()
      1 with open(file, 'r') as f:
----> 2     d = pickle.load(f)

TypeError: a bytes-like object is required, not 'str'
Run Code Online (Sandbox Code Playgroud)

我在其他SO回答中看到人们在使用open(file ,'rb')和切换到open(file ,'r')修复它时遇到了这个问题.如果这有帮助,我试着尝试open(file ,'rb')并得到以下错误:

UnpicklingError                           Traceback (most recent call last)
<ipython-input-26-b77842748a06> in <module>()
      1 with open(file, 'rb') as f:
----> 2     d = pickle.load(f)

UnpicklingError: invalid load key, '\x0a'.
Run Code Online (Sandbox Code Playgroud)

当我打开文件f = open(file, 'r')和输入 …

python pickle python-3.x

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

更快地计算face_descriptor

在我的面部识别项目的面被表示为如在所使用的128维嵌入(face_descriptor)FaceNet.我可以通过两种方式从图像中生成嵌入.

使用Tensorflow resnet模型v1.

emb_array = sess.run(embedding_layer,
                    {images_placeholder: images_array, phase_train_placeholder: False})
Run Code Online (Sandbox Code Playgroud)

可以传递图像阵列并获得嵌入列表.这有点慢.看1.6s.(虽然大量图像的时间几乎不变).注意:GPU不可用

其他方法是使用dlib

dlib.face_recognition_model_v1.compute_face_descriptor(image, shape)
Run Code Online (Sandbox Code Playgroud)

这给出了快速的结果.差不多0.05秒.但是一次只能传递一个图像.时间随图像数量的增加而增加.

有没有办法传递图像数组来计算dlib中的嵌入或以任何方式提高dlib的速度?

或者还有其他更快的方法来生成128维面部嵌入?

更新:我将多个图像连接成单个图像并传递给dlib

dlib.face_recognition_model_v1.compute_face_descriptor(big_image, shapes)
Run Code Online (Sandbox Code Playgroud)

即,将具有单个面的多个图像转换为具有多个面的单个图像.静止时间与连接的图像数量(即面部数量)成比例.几乎相同的时间迭代单个图像.

python face-detection neural-network dlib tensorflow

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

节点服务器上的间歇性 EAI_AGAIN 错误

我的 nodejs 应用程序连接到外部 url 并使用响应。该应用程序大部分时间都运行良好,但我偶尔会收到 EAI_AGAIN。

error:{code:EAI_AGAIN, errno:EAI_AGAIN,syscall:getaddrinfo,hostname:**.com,host:***.com,port:443}
Run Code Online (Sandbox Code Playgroud)

我经历了一些与 EAI_AGAIN 相关的问题。没有解决我的目的。看到当 DNS 名称解析失败时会发生此错误。

我的担忧是

1)当我检查日志时。在失败的请求之前有很多成功的请求,在失败的请求之后也有很多成功的请求。为什么只有一个请求失败?

2) 真正的原因可能是什么?我想知道所有的可能性。

3) 原因可能是我们正在连接的外部服务的问题吗?

4)如果有人可以帮助重新创建问题,那就太好了。

注意:我们使用的是 docker 容器。如果这有什么关系。

dns rest network-programming request node.js

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

如何获取python目录中的文件名列表(不带扩展名)?

假设我的文件夹结构是

+Data
  -abc.jpg
  -db.jpg
  -ap.jpg
Run Code Online (Sandbox Code Playgroud)

输入是“路径/到/数据”

预期输出为 ['abc','db','ap']

我看到了很多类似的问题,但没有得到我想要的。我更喜欢在 python 中使用 os 模块。

python

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

RabbitMQ basic_publish 是异步的吗?

我有以下生产者代码。

message是经过一些计算得到的dict数据。我想将消息发布到队列。然后我将消息重置为空字典以进行其他一些计算。但消费者总是从队列中得到一个空的字典。我觉得消息在发布之前已重置(是异步的吗?)。如何使其同步?

message = {a big dict ...}
channel.basic_publish(exchange='',
                            routing_key='my_queue',
                            body=json.dumps(message))
message = {}
Run Code Online (Sandbox Code Playgroud)

python rabbitmq pika

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

修改张量

假设我有这样的张量

[
    [ 6 -2 -2 -2 -1 -2  -3 -3 -6 -6]
    [ 1 -6 -7 -7 -7 -7  -7 -6 -6 -6]
    [ 5 -3 -3 -4 -4 -4  -4 -3 -3 -3]
 ]
Run Code Online (Sandbox Code Playgroud)

我必须在每一行上执行以下操作.如果第一个元素是行中最大(值)元素但其值小于4,则交换该行的第一个和第二个元素.产生的张量将是

[
    [ 6 -2 -2 -2 -1 -2  -3 -3 -6 -6]
    [ -6 1 -7 -7 -7 -7  -7 -6 -6 -6] #elements swapped
    [ 5 -3 -3 -4 -4 -4  -4 -3 -3 -3]
 ]
Run Code Online (Sandbox Code Playgroud)

我正在使用tensorflow模块在python中工作.请帮忙.

python machine-learning tensorflow

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

使用删除的成员形成一个新的副本集

如何配置已删除的副本集成员以形成新的副本集?

我有一个包含 4 个 mongod 实例的副本集

rs.config() 的输出

{
    "_id" : "rs0",
    "members" : [
        {
            "_id" : 0,
            "host" : "localhost:27031"
        },
        {
            "_id" : 1,
            "host" : "localhost:27032"
        },
        {
            "_id" : 2,
            "host" : "localhost:27033"
        },
        {
            "_id" : 3,
            "host" : "localhost:27034"
        }
    ],
    "settings" : {
       "replicaSetId" : ObjectId("5cf22332f5b9d21b01b9b6b2") 
    }
}
Run Code Online (Sandbox Code Playgroud)

我从副本集中删除了 2 个实例

rs.remove("localhost:27033")
rs.remove("localhost:27034")
Run Code Online (Sandbox Code Playgroud)

现在我的要求是用这 2 个删除的成员形成一个新的副本集。最好的方法是什么?

我目前的解决方案

连接到已删除的成员

mongo --port 27033
Run Code Online (Sandbox Code Playgroud)

并执行

conf = {
        "_id" : "rs0",
        "members" : [ …
Run Code Online (Sandbox Code Playgroud)

replication data-migration mongodb mongodb-replica-set

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

过滤排序列表

我有一个列表,其中元素已经排序。我想过滤掉大于给定数字的元素。

例如,

original_list = [2,3,5,7,11]
limit = 6
expected_list = [2,3,5] # All elements <=6 
Run Code Online (Sandbox Code Playgroud)

实现这一目标的最有效方法是什么?

我看到的所有现有问题都处理未排序的列表。如果列表已经排序,我相信会有更有效的过滤方式。

python sorting filter python-3.x

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