小编sco*_*ang的帖子

opencv.imshow会导致jupyter笔记本崩溃

我在谷歌或stackoverflow上检查其他问题,他们正在谈论在脚本中运行cv2.imshow,但我的代码在jupyter笔记本中运行.

这是我的配置:

  1. ubuntu 16.4x64

  2. python 3.5

  3. opencv 3.1.0

我启动了一个jupyter笔记本:这是我把它放在笔记本上的代码:

%pylab notebook
import cv2

cvim2disp = cv2.imread('data/home.jpg')
cv2.imshow('HelloWorld', cvim2disp)
cv2.waitKey() #image will not show until this is called
cv2.destroyWindow('HelloWorld') #make sure window closes cleanly
Run Code Online (Sandbox Code Playgroud)

当我执行这些代码.图像将显示在弹出窗口中,但是我无法通过单击右上角的x关闭此窗口,片刻之后,系统会提示我窗口没有响应,它会给我2个选择:等待","退出".如果我点击等待,那么它将在稍后显示相同的提示,如果我点击'fore quit',那么jupyter笔记本内核会死掉,我必须重新开始.

我谷歌周围,许多解决方案建议我应该添加此代码

cv2.startWindowThread()
Run Code Online (Sandbox Code Playgroud)

之前imshow,但情况变得更糟,内核永远挂起!任何人都知道发生了什么.

这是我的错误的图片: 在此输入图像描述

python ubuntu opencv jupyter-notebook

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

Keras:如何将学习率输出到张量板上

我添加了一个回调来降低学习率:

 keras.callbacks.ReduceLROnPlateau(monitor='val_loss', factor=0.5, patience=100, 
                                   verbose=0, mode='auto',epsilon=0.00002, cooldown=20, min_lr=0)
Run Code Online (Sandbox Code Playgroud)

这是我的张量回调:

keras.callbacks.TensorBoard(log_dir='./graph/rank{}'.format(hvd.rank()), histogram_freq=10, batch_size=FLAGS.batch_size,
                            write_graph=True, write_grads=True, write_images=False)
Run Code Online (Sandbox Code Playgroud)

我想确保它在我的训练期间被踢了,所以我想把学习率输出到tensorbaord.But我找不到我可以设置的地方.

我还检查了优化器api,但没有运气.

keras.optimizers.Adam(lr=0.001, beta_1=0.9, beta_2=0.999, epsilon=None, decay=0.0, amsgrad=False)
Run Code Online (Sandbox Code Playgroud)

那么如何将学习率输出到tensorboad?

keras tensorboard

13
推荐指数
2
解决办法
3866
查看次数

如何在不停止python程序的情况下禁用pdb.set_trace()并编辑代码

我怀疑我的一个循环中有问题,所以我用pdb.set_trace()设置了一个断点

import pdb
for i in range(100):
    print("a")
    pdb.set_trace()
    print("b")
Run Code Online (Sandbox Code Playgroud)

在这个循环中检查变量几次之后,我决定继续这个编程而不再进一步中断.所以我尝试用b命令获取中断号码,没有列出中断.我想这行代码没有设置断点.但如何在不停止程序和更改代码的情况下获得这个"断点"?

python pdb

7
推荐指数
3
解决办法
2371
查看次数

pdb:在不在 sys.path 中的文件上设置断点

我正在编写一个 python 包,我想使用 pdb 来调试它。当我尝试在其中一个文件中设置断点时,出现错误:

The specified object 'CaptureManager.frame' is not a function or was not found along sys.path
Run Code Online (Sandbox Code Playgroud)

我google了一下,找到了解决办法:

将包含我的文件的目录附加到 sys.path

sys.path.append(os.path.join(os.getcwd(),"project_cameo"))
Run Code Online (Sandbox Code Playgroud)

但是几次之后,我变得非常恼火,因为每次重新启动调试会话时我都必须这样做。有没有一种“聪明”的方法来做到这一点?

python pdb

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

使用 Kubernetes hostPath 设置但文件未显示在容器中

我正在尝试设置hostPath在 Pod 之间共享文件。

我正在遵循本指南配置 Pod 以使用持久卷进行存储

这是 的配置文件pv,pvc,pod

光伏:

kind: PersistentVolume
apiVersion: v1
metadata:
  name: task-pv-volume
  labels:
    type: local
spec:
  storageClassName: manual
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: "/tmp/data"
Run Code Online (Sandbox Code Playgroud)

PVC:

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: task-pv-claim
spec:
  storageClassName: manual
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 3Gi
Run Code Online (Sandbox Code Playgroud)

荚:

kind: Pod
apiVersion: v1
metadata:
  name: task-pv-pod
spec:
  volumes:
    - name: task-pv-storage
      persistentVolumeClaim:
       claimName: task-pv-claim
  containers:
    - name: task-pv-container
      image: nginx
      ports:
        - containerPort: …
Run Code Online (Sandbox Code Playgroud)

kubernetes

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

opencv Top Hat 和 Black Hat 的直觉是什么

最近开始学习opencv。我只有工程学学士学位。我很难理解这两种形态转换:黑帽、高帽。官方文件在这里

有人可以就这些操作的直觉是什么以及它的用途给出一些建议吗?

opencv

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

scikit-image:使用imsave将ndarray写入图像,使用imread读回,数据不匹配

这是最小的工作示例:

import numpy as np
from skimage.io import imsave, imread

image = np.array([[[109, 232, 173],
                [ 55,  35, 144]],
                [[ 43, 124, 185],
                [234, 127, 246]]], dtype=np.uint8)

imsave("test.jpg", image)
rb_image = imread("test.jpg")
print("original image")
print(image)
print("read back image")
print(rb_image)
Run Code Online (Sandbox Code Playgroud)

运行之后,结果是,从文件读回的ndarray与之不匹配

original image
[[[109 232 173]
  [ 55  35 144]]

 [[ 43 124 185]
  [234 127 246]]]
read back image
[[[111 208 255]
  [ 42  61 138]]

 [[ 72 140 201]
  [141 131 218]]]
Run Code Online (Sandbox Code Playgroud)

有人可以给我一些建议吗?

python scikit-image

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

出现异常时如何强制爬出

我用Scrapy编写了一个爬虫。

我正在将数据写入数据库的管道中有一个函数。我使用日志记录模块记录运行时日志。

我发现当我的字符串有中文时logging.error()会抛出异常。但是搜寻器一直在运行!

我知道这是一个小错误,但是如果存在严重的异常,并且搜寻器继续运行,我会错过它。

我的问题是:是否存在可以Scrapy在出现异常时强制停止的设置?

scrapy web-scraping

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

memory_profiler:如何绘制每个函数的内存使用情况

版本:0.50.0

官方文档中。该博客有一个链接,它指导我如何制作每个函数的内存使用情况图。但是当我尝试运行本文中的确切代码时。

测试1.py

import time

@profile
def test1():
    n = 10000
    a = [1] * n
    time.sleep(1)
    return a

@profile
def test2():
    n = 100000
    b = [1] * n
    time.sleep(1)
    return b

if __name__ == "__main__":
    test1()
    test2()
Run Code Online (Sandbox Code Playgroud)

命令是:

mprof run test1.py
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

回溯(最近一次调用最后一次):

文件“test.py”,第 3 行,@profile NameError:名称“profile”未定义

这很奇怪,因为有官方的引用:

警告

如果您的 Python 文件从 memory_profiler import profile 导入内存分析器,则不会记录这些时间戳。注释掉导入,保留您的函数,然后重新运行。

因此,如果我想要每个函数的内存使用情况图,我需要注释掉 from memory_profiler import profile,但是当我注释掉它时,出现错误。

python memory-profiling

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

如何手动清空moosefs垃圾文件夹以节省空间

我发现moosefs垃圾占用了我过多的磁盘空间。根据moosefs文档,它将保留一段时间,以防用户需要。但是如何手动清理以节省空间?

moosefs

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