小编Hon*_*ear的帖子

os.path.dirname(__ file__)返回空

我想获取当前目录的路径,在该目录下执行.py文件.

例如,一个D:\test.py包含代码的简单文件:

import os

print os.getcwd()
print os.path.basename(__file__)
print os.path.abspath(__file__)
print os.path.dirname(__file__)
Run Code Online (Sandbox Code Playgroud)

输出结果是奇怪的:

D:\
test.py
D:\test.py
EMPTY
Run Code Online (Sandbox Code Playgroud)

我期待从相同的结果getcwd()path.dirname().

鉴于os.path.abspath = os.path.dirname + os.path.basename,为什么

os.path.dirname(__file__)
Run Code Online (Sandbox Code Playgroud)

返回空?

python

148
推荐指数
6
解决办法
18万
查看次数

Numpy np.multiply vs*-Operator

使用有什么不同

import numpy as np

a, b = np.random([1024, 1024]), np.random([1024, 1024])
c = np.multiply(a, b)
Run Code Online (Sandbox Code Playgroud)

过度

c = a * b
Run Code Online (Sandbox Code Playgroud)

或者是*numpy-arrays上的-Operator只是被覆盖了np.multiply


编辑:这个问题被标记为重复,因为一个问题询问有关除法运算符(np.divide()vs/)和类似答案的相同的事情,但除非它被改为"numpy算术与python算术"或类似的东西,它赢了'帮助人们想到和我一样的事情(关于乘法)而不是"聪明"足以假设关于相关算术运算(除法)的问题推广到所有基本算术运算.为了更容易找到答案,我主张保持这个问题.

python numpy

11
推荐指数
2
解决办法
5982
查看次数

是什么导致张量流导入如此慢?

我使用张量流已经有一段时间了。最近,我的脚本运行速度非常慢(> 80 秒),而之前(< 1 秒)。我将问题范围缩小到import tensorflow,仅此一项就花费了所有时间(所有其他库和操作都运行 << 1 秒)。

我可能有一个跟踪,但我不知道如何处理它:当我在 80 秒导入期间键盘中断 (Strg+C) 执行时,通常会出现以下情况:

Traceback (most recent call last):
  File "/.../py_env/tf_unet/lib/python3.5/site.py", line 703, in <module>
    main()
  File "/.../py_env/tf_unet/lib/python3.5/site.py", line 694, in main
    execsitecustomize()
  File "/.../py_env/tf_unet/lib/python3.5/site.py", line 548, in execsitecustomize
    import sitecustomize
  File "/usr/lib/python3.5/sitecustomize.py", line 3, in <module>
    import apport_python_hook
  File "<frozen importlib._bootstrap>", line 969, in _find_and_load
  File "<frozen importlib._bootstrap>", line 954, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 896, in _find_spec
  File "<frozen importlib._bootstrap_external>", line 1139, in find_spec
  File …
Run Code Online (Sandbox Code Playgroud)

python import performance tensorflow

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

如何使用 PyCharm 为远程 Python 解释器保留环境变量

我正在使用通过 ssh 访问的远程 Python 解释器(使用 pew 创建的虚拟环境)。当手动 ssh 连接到服务器并使用解释器时,这工作正常。但是,当使用 PyCharm 调用它时,它会忘记我在 .bashrc 中导出的环境变量。

似乎在通过 ssh 调用 Python 解释器时,PyCharm(即使从 bash 开始)忽略了 .bashrc。这里表明外壳包装器是解决方案。

#!/bin/bash -l
/path/to/interpreter/bin/python
Run Code Online (Sandbox Code Playgroud)

但是简单地将这个 shell 文件作为解释器提供给 PyCharm 是行不通的(包管理被禁用,并且在运行 py-code 时会打开一个 Python 终端......)。

如何获得“shell 包装器”以确保在运行 PyCharm 远程 Python 解释器之前执行 .bashrc?


我确保 PyCharm 在正确的环境下运行。所有本地解释器都没有显示该问题(在 PyCharm 终端和 Python 脚本中进行测试:)

import os
print(os.environ)
Run Code Online (Sandbox Code Playgroud)

我也知道用于运行特定文件的“编辑配置”选项以及在那里设置环境变量的可能性,但是对于每个项目/文件而不是我正在寻找的内容来说,这很乏味。

python ssh environment-variables pycharm

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

在matlab中从结构数组中删除项目

我在matlab中有一个非常大的结构数组.假设为了论证,为了简化情况,我有类似的东西:

structure(1).name = 'a';
structure(2).name = 'b';
structure(3).name = 'c';
structure(1).returns = 1;
structure(2).returns = 2;
structure(3).returns = 3;
Run Code Online (Sandbox Code Playgroud)

现在假设我有一些条件,并且让我想要从structure(2)(结构数组中的任何和所有条目)中删除所有内容.有什么好办法呢?

我的解决方案是将相应的字段设置为[](例如structure(1).name = [];),但不会删除它们,只会使它们为空.我如何从结构数组中完全删除它们?有办法吗?

matlab structure removeall

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

在matlab中拼接图像时如何正确混合?

我在matlab中尝试缝合图像,但得到难看的重叠线条.如何正确混合图像?目前我正在使用下面的代码,但它混合得太多(特别是建筑物窗户与幽灵文物混合,黑色建筑物也是如此).

未混合的图像 混合图像

%Tx - how much to move picture by x, Ty - by y (homography)
cropX = size(imcyl2, 2); %second image x size
xdimfirst = size(imcyl1, 2); %first image x size
ydimfirst = size(imcyl1, 1); %first image y size
xoverlap = xdimfirst - Tx;
newImg = imcyl1;
for y = 1:size(imcyl2, 1)
   for x = 1:cropX
       if ((Tx+x) > 0 && (Ty+y) >0)
       % if we are in the overlap region, then we need to blend.
               scale1 = (xoverlap - …
Run Code Online (Sandbox Code Playgroud)

matlab blending overlap panoramas image-stitching

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

在2D数据中查找峰(区域)

我希望在2D数据中找到峰值区域(如果你愿意,可以通过Hough变换创建灰度图像或2D景观).由峰区域我指的是本地最大峰值,但不是一个单一的点,但周围的一部分贡献区域与它去.我知道,这是一个模糊的定义,但也许或下面的图像会让你直截了当地说出我的意思.

标记为红色(1-4)的峰是我想要的,粉红色(5-6)示例中的"灰色区域",如果没有找到那些较小的峰值,如果它们是.

3D中的最佳结果

图像包含1-20个峰值区域,高度不同.上面的冲浪图的2D数据如下所示,可能的结果(橙色对应峰值1,绿色对应峰值2 a/b,......).可以在描述链接中找到用于测试的单个图像:

图像左:输入图像 - - - - 中:( okaish)结果 - - - - :结果覆盖在图像上.

输入,结果和重叠结果

上面的结果是使用简单的阈值(MATLAB代码)生成的:

% thresh_scale = 15;                     % parameter: how many thresholding steps 
% thresh_perc = 6;                       % parameter: threshold at which we clip
thresh = multithresh(H,thresh_scale);    
q_image = imquantize(H, thresh);         

q_image(q_image <= thresh_perc) = 0;     % regions under threshold are thrown away
q_image(q_image > thresh_perc) = 1;      % ... …
Run Code Online (Sandbox Code Playgroud)

algorithm matlab image-processing detection watershed

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

在 R 中处理大型栅格马赛克,无需将它们合并到单个文件(如lidR目录)

litR 包有一种巧妙的方法来处理巨大(点云)数据集:该catalog函数(此处为doc)避免将数据集加载到内存中,并且可以将马赛克(分布在多个(不重叠)图块上的数据集)视为单个数据集。它在计算过程中以智能方式动态加载所需的图块。如果只处理数据集的一小部分,最好避免使用大文件(多个 GB)并保持内存需求精简。

R 中是否有类似的方便/内存高效/“lidR-catalog-way”来处理大型光栅马赛克? 或者用更通用的方式来说: 是否有一种方法可以在 R 中使用镶嵌栅格数据集而无需先合并它们?

我知道mosaicdoc)和merge函数,它们允许我将平铺栅格马赛克合并到单个栅格数据集中。我还发现这样gdal做会更快并且内存效率更高。这是一个 R 片段:

  mosaicgdal <- function(files, out) {
    in_files = do.call(paste, c(as.list(files), sep = " "))
    cmd = paste("gdal_merge.py -a_nodata -32767 -ps 25 25 -o", out, in_files) 
    system(cmd)
  }
Run Code Online (Sandbox Code Playgroud)

然而,两者都需要将整个数据集具体化为内存中(或至少在磁盘上)的单个文件。有办法避免这种情况吗?

我的应用程序: 我正在使用一个巨大的 LAS 点云(几个 TB,所有内容都平铺在 100 MB 文件中)和相应的栅格数据集(大约 100 GB),例如高分辨率地形模型。我通常处理小部分(通过空间多边形 [.shp/.kml] 分隔)或整个 LAS 切片。这在lidR中的内存效率非常高,只加载必要的图块:

# load several TB las tiles as catalog (only file-paths and metadata)
las_data …
Run Code Online (Sandbox Code Playgroud)

r raster gdal

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

h5py 文件上下文管理器会自动关闭文件吗?

我已经使用了f = h5py.File(filename, 'r')一段时间了,f.close()最​​后需要用 来关闭。

最近我发现我可以这样做:

with h5py.File(filename, 'r') as f:
     # code to manipulate the file
Run Code Online (Sandbox Code Playgroud)

但是我不确定:这个“上下文管理器”(他们在页面上称之为)是否会自动关闭文件,还是我仍然需要f.close()在最后添加?

我试图在文档中找到答案,但上下文管理器仅在快速入门指南中的一行中提到,显然没有关于它的更多信息。

python contextmanager h5py

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

用Tensorboard查看图像,有没有办法同步“步数”?

我正在使用张量板来可视化一些网络结果。方便的是,它添加了一个滑块来跳过步骤 - 但为了“同步”图像,我必须手动滑动到每个图像中的正确步骤。例如,我在这里滑动到step 32predicition_c0_1左图。如果我想要相应的prediction_c0右图),我必须手动滑动到它。

有没有办法自动同步在所有图像上滑动步骤?

张量板 图片

tensorflow tensorboard

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