小编mah*_*ood的帖子

使用正则表达式搜索HashSet

有一个HashSet字符串,我想搜索密钥.HashSet内容看起来像

AB
A1-A2-A3
A1
A2-A3
AD-A1
AZ
...
Run Code Online (Sandbox Code Playgroud)

如果我使用theSet.contains("A1"),那么它只会返回A1.不过,我想A1-A2-A3A1AD-A1.我的数据文件中的特殊字符-是一个分隔符,以防一行包含该分隔符.

如果我不使用HashSet并在字符串数组中搜索,那么我知道如何使用matcher().HashSet的任何解决方案?

java regex hashset

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

windows和linux中的路径分隔符,用于java代码

在我的java代码中,我有一些我编写的硬编码路径

String workingPath = initPath + "\\" + tmpPath;
Run Code Online (Sandbox Code Playgroud)

initPathtmpPath通过如下步骤获得 File.getParent().现在,这适用于Windows,如果我将我的代码移动到linux,那\\将是有问题的,因为其他两个是由系统方法决定的.结果是这样的

/home/mahmood/project/alpha\temp1
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?我不想把/我的代码放入linux系统.

java windows filepath

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

在powershell中打印参数

我可以知道,为什么字符串参数不会打印在以下powershell脚本中?

function Get-Name ( [string] $Username ) {
    echo "user : $Username"
}


PS C:\> .\Get-Name.ps1 -username "test"
PS C:\>
Run Code Online (Sandbox Code Playgroud)

syntax powershell

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

CUDA 中的 FLOP 效率

根据定义 flop_sp_efficiency

单精度浮点运算达到峰值的比率

CUDA 手册涵盖了 FLOPS,请点击此处。公制收益率,例如 10%。这引发了关于“峰值”一词的两个问题:

1- 那是特定于硬件的值吗?因此,nvprof 应该知道,为了计算比率,并且分母对于在特定设备上运行的所有应用程序应该是恒定的?根据手册,就是No_CUDA_cores * Graphic_clock_freq * 2。那是 nvprof 设置分母的方式吗?

2- 这是否意味着在每个内核的程序运行时达到峰值?假设一个内核被调用了 10 次。一次调用具有最高的 FLOPS(与硬件值无关),例如 2GFLOPS。然后计算效率sum(FLOPS_i)/10,得出 10 次调用的平均 FLOPS,然后将该平均值除以 2,得出该内核的 FLOPS 效率。在这个假设下,一个内核可能达到 2 GFLOPS,而另一个内核可能达到 4 GFLOPS。我这么说是因为 nvprof 中的每个内核都报告了该指标。

对此有何评论?

cuda nvprof

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

发出重放的加载/存储指令

有两个nvprof关于加载/存储指令的度量,它们是ldst_executedldst_issued。我们知道executed<=issued。我预计那些发出但未执行的加载/存储与分支预测和其他不正确的预测有关。然而,从(幻灯片9)文档和主题来看,发出但未执行的指令与序列化和重放有关。

我不知道这个原因是否适用于加载/存储指令。另外,我想知道为什么用这样的术语来表示已发出但未执行的指令?如果由于任何原因存在序列化,指令将被执行多次。那么,为什么它们不被算作呢executed

对此有何解释?

cuda nvidia nvprof

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

在 bash 中检查变量是否为非空

我想通过 ssh 运行远程命令。所以,一行命令是

ssh root@10.1.1.101 'VMID=`./run_prog` && if [ -n $VMID ]; then echo "id=$VMID"; vim-cmd vmsvc/power.off $VMID; else echo "$VMID empty"; fi'
Run Code Online (Sandbox Code Playgroud)

问题是,如果VMID为空或非空,我会看到 的输出vim-cmd

id=
Usage: power.off vmid
Run Code Online (Sandbox Code Playgroud)

或者

34
Powering off VM:
Run Code Online (Sandbox Code Playgroud)

我如何确定它vim-cmd是针对非空VMID值执行的?

bash

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

在调用 fclose 之前检查文件处理程序

我如何检查当 a被调用时,之前fclose( fHandler )有 a ?fHandler = fopen(foo, "w");在程序中,有一个部分打开一个索引号递增的文件:

 char buffer[1024];
 sprintf(buffer, "./trace%d.txt", id);
 fHandler = fopen(buffer, "w");
Run Code Online (Sandbox Code Playgroud)

在代码的其他地方,我尝试关闭此类文件。

 fclose(fHandler);
Run Code Online (Sandbox Code Playgroud)

if (fHandle_is_still_open)我想检查一下之前的事情fclose()。似乎检查fHandler文件NULL是否存在,这不是我想要的。我该如何解决这个问题?

更新:

原因是,在执行过程中的某个地方,我收到此错误:

free(): invalid pointer
Run Code Online (Sandbox Code Playgroud)

和 gdb 报告:

#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1  0x00007ffff5e34859 in __GI_abort () at abort.c:79
#2  0x00007ffff5e9f3ee in __libc_message (action=action@entry=do_abort, fmt=fmt@entry=0x7ffff5fc9285 "%s\n")
    at ../sysdeps/posix/libc_fatal.c:155
#3  0x00007ffff5ea747c in malloc_printerr (str=str@entry=0x7ffff5fc74ae "free(): invalid pointer")
    at malloc.c:5347
#4  0x00007ffff5ea8cac in _int_free (av=<optimized out>, p=<optimized out>, …
Run Code Online (Sandbox Code Playgroud)

c file

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

对数组使用 .values.max()

我使用以下代码从数据帧中获取一行,然后找到最大值。

def find_max(a):
    return a.values.max()

row = df.iloc[0].astype(int)
max_value = find_max(a)
Run Code Online (Sandbox Code Playgroud)

效果很好。但是,如果我传递一个像这样的数组

ar = [1,2,3]
max_value = find_max(ar)
Run Code Online (Sandbox Code Playgroud)

它不起作用,我收到了AttributeError: 'list' object has no attribute 'values'。我怎样才能对这两种类型使用该功能?

python pandas

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

使用 numpy 计算大数的几何均值

我想计算一些大数的几何平均值。问题是大数的乘积结果溢出。例子:

a = array([168116745,168117411,168117729,168118170,168118695,168119286,168119610])
print(a.prod())
print(a.prod()**(1.0/len(a)))
Run Code Online (Sandbox Code Playgroud)

输出

1947451320
21.235703778668626
Run Code Online (Sandbox Code Playgroud)

另一方面,可以使用 的规则sqrt(a.b) = sqrt(a).sqrt(b)。因此,我可以写

n = 1.0/len(a)
temp = []
for i in len(a):
    temp.append(i**n)
Run Code Online (Sandbox Code Playgroud)

所以,我有了部分数字,并且能够找到temp元素的乘积。我正在寻找基于现有库的更高效、更小的代码。有什么想法吗?

python numpy

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

在标准C中使用pair和make_pair

有没有办法在C中使用std :: pair和std :: make_pair?似乎它们适用于C++.

就像我用的那样

#include "utility"
Run Code Online (Sandbox Code Playgroud)

它说它找不到这样的文件

thansk任何建议

c utility std-pair

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

标签 统计

c ×2

cuda ×2

java ×2

nvprof ×2

python ×2

bash ×1

file ×1

filepath ×1

hashset ×1

numpy ×1

nvidia ×1

pandas ×1

powershell ×1

regex ×1

std-pair ×1

syntax ×1

utility ×1

windows ×1