小编eri*_*mjl的帖子

如何在有向图中查找子图而不转换为无向图?

我有一个包含许多子图的图。我有一些边在两个方向上连接两个节点,即 A-->B 和 B-->A。双向性很重要,因为它代表我们缺乏关于 A 去 B 还是 B 去 A 的知识,我们没有简单的方法来确定哪个是正确的。

我想知道有多少个子图,并将每个子图中的边输出到 Pandas DataFrame。但是,NetworkX 仅在提供的 connected_components_subgraph(G) 函数中接受无向图。当我将图转换为无向图时,我可以使用 connected_components_subgraph() 来获取每个边中的节点,但是我失去了边的方向性。

有没有一种简单的方法可以完成我想要实现的目标?

python graph networkx

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

nbconvert:导出到另一个目录?

我想知道是否可以将Jupyter笔记本导出到与笔记本本身不同的目录中?我正在使用它来构建笔记本的HTML版本,并且希望它们位于docs/我的GitHub存储库中(这是为了利用GH页)。

jupyter jupyter-notebook nbconvert

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

在Dask中预分散数据对象是否有优势?

如果我将数据对象预分散到多个工作节点上,是否会将它完整地复制到每个工作节点上?如果该数据对象很大,这样做有好处吗?

以该futures接口为例:

client.scatter(data, broadcast=True)
results = dict()
for i in tqdm_notebook(range(replicates)):
    results[i] = client.submit(nn_train_func, data, **params)
Run Code Online (Sandbox Code Playgroud)

以该delayed接口为例:

client.scatter(data, broadcast=True)
results = dict()
for i in tqdm_notebook(range(replicates)):
    results[i] = delayed(nn_train_func, data, **params)
Run Code Online (Sandbox Code Playgroud)

我问的原因是因为我注意到以下现象:

  1. 如果我预分散数据,则delayed似乎将数据重新发送到工作程序节点,从而使内存使用量大约增加了一倍。似乎预分散并没有按照我的预期做,这允许工作节点引用预分散的数据。
  2. futures接口需要很长的时间来迭代通过循环(显著更长)。我目前不确定如何确定这里的瓶颈。
  3. 使用该delayed接口,从compute()调用函数的时间到活动在仪表板上反映的时间,存在很大的延迟,我怀疑这是由于数据复制造成的。

python parallel-processing dask

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

使用 pytorch-lightning 进行简单预测的示例

我有一个现有模型,我在其中加载一些预训练的权重,然后在 pytorch 中进行预测(一次一个图像)。我正在尝试将其基本上转换为 pytorch 闪电模块,并且对一些事情感到困惑。

所以目前,我__init__的模型方法如下所示:

self._load_config_file(cfg_file)
# just creates the pytorch network
self.create_network()  

self.load_weights(weights_file)

self.cuda(device=0)  # assumes GPU and uses one. This is probably suboptimal
self.eval()  # prediction mode
Run Code Online (Sandbox Code Playgroud)

我可以从闪电文档中收集到的信息,我几乎可以做同样的事情,除了不cuda()打电话。所以像:

self.create_network()

self.load_weights(weights_file)
self.freeze()  # prediction mode
Run Code Online (Sandbox Code Playgroud)

所以,我的第一个问题是这是否是使用闪电的正确方法?闪电如何知道它是否需要使用 GPU?我猜这需要在某处指定。

现在,对于预测,我有以下设置:

def infer(frame):
    img = transform(frame)  # apply some transformation to the input
    img = torch.from_numpy(img).float().unsqueeze(0).cuda(device=0)
    with torch.no_grad():
        output = self.__call__(Variable(img)).data.cpu().numpy()
    return output
Run Code Online (Sandbox Code Playgroud)

这是让我困惑的一点。我需要覆盖哪些功能才能进行闪电兼容预测?

此外,目前,输入是一个 numpy 数组。这是否可以从闪电模块中实现,或者总是必须使用某种数据加载器?

在某些时候,我想扩展这个模型实现来做训练,所以想确保我做对了,但虽然大多数例子都集中在训练模型上,但一个简单的例子是在生产时对单个图像进行预测/数据点可能有用。

我在带有 cuda 10.1 的 GPU 上使用 0.7.5 和 pytorch …

pytorch pytorch-lightning

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

使用sklearn.AffinityPropagation输出标签

我有一组数据是1000个同源蛋白质序列的距离矩阵.

我已经设法为此计算亲和度矩阵(简单计算:1 - 距离,在我的情况下).

基本上,如果在Excel中查看数据,则没有标题行,第1列是序列名称,然后接下来的1000列是距离值.

我修改了sklearn的Affinity Propagation网站上提供的代码.这就是它现在的样子:

print __doc__

import numpy as np
from sklearn.cluster import AffinityPropagation
from sklearn import metrics
from sklearn.datasets.samples_generator import make_blobs
import csv

##############################################################################
f = open('ha-sequences-sample-distmat2.csv', 'rU')
csvreader = csv.reader(f)

sequence_names = []
distance_matrix = []
full_data = []

for row in csvreader:
#   print row

    sequence_names.append(row[0])
    distance_matrix.append(row[1:])
    full_data.append(row)

f.close()

distmat = np.array([row for row in distance_matrix]).astype(np.float)

# print distmat

affinity_matrix = np.array([1 - row for row in distmat]).astype(np.float)

full_matrix = zip(sequence_names, affinity_matrix)

# print …
Run Code Online (Sandbox Code Playgroud)

machine-learning bioinformatics scikit-learn

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

pyinstaller 错误:找不到 scipy(没有名为 _ufuncs_cxx 的模块)

我正在使用 pyinstaller 将 python 脚本转换为 Ubuntu (14.04) 中的二进制文件。我使用 Canopy (Enthought) 来管理所有的 python 库。

代码使用了 networkx、numpy 和 scipy。这是我的规范文件:

# -*- mode: python -*-
a = Analysis(['main_test.py'],
             pathex=['/home/sean/Desktop/prog',],
             hiddenimports=[],
             hookspath=None,
             runtime_hooks=None)
pyz = PYZ(a.pure)
exe = EXE(pyz,
          a.scripts,
          exclude_binaries=True,
          name='main_test',
          debug=False,
          strip=None,
          upx=True,
          console=True )
coll = COLLECT(exe,
               a.binaries,
               a.zipfiles,
               a.datas,
               strip=None,
               upx=True,
               name='main_test')
Run Code Online (Sandbox Code Playgroud)

起初我得到了错误:

ImportError: libmkl_gf.so: cannot open shared object file: 
    No such file or directory
Run Code Online (Sandbox Code Playgroud)

然后我找到了 .so 库

/home/sean/Canopy/appdata/canopy-1.3.0.1715.rh5-x86/lib
Run Code Online (Sandbox Code Playgroud)

我手动将几个 .so 文件复制到 dist 目录中。

但是,我遇到了另一个错误:

  File "/home/sean/Enthought/Canopy_32bit/User/lib/python2.7/site-
        packages/PyInstaller/loader/pyi_importers.py", line 409, …
Run Code Online (Sandbox Code Playgroud)

python pyinstaller scipy enthought canopy

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

如何在python中进行子排序?

非常感谢SO社区帮助我解决了以前遇到的问题.喜欢这里的帮助!

我现在还有另一个问题.我有一个单独的DNA序列列表,其中包含"构造编号"和"部件号".就目前的情况而言,从我之前的代码开始,我把它作为一个csv文件,我打开,读入,导入为字典对象列表.所有内容都按"构造编号"排序,但我需要按"零件编号"排序.(有点像在Excel中,他们说"首先排序" 然后排序 _."

有人知道如何完成这项工作吗?到目前为止,我所写的都是这样的:

primers_list = open('primers-list.csv', 'rU')
primers_unsorted = csv.DictReader(primers_list)
for row in primers_unsorted:
    print(row)
Run Code Online (Sandbox Code Playgroud)

到目前为止,输出的一个子集就是以下内容,用于可视化我正在使用的数据:

{' Direction': 'fw primer', ' Construct Number': '1', ' Part Number': '2', 'Primer Sequence': 'AAGCGGCCGCTCGAGTCTAAgctcactcaaaggcggtaatcagataaaaaaaatccttag'}
{' Direction': 're primer', ' Construct Number': '1', ' Part Number': '1', 'Primer Sequence': 'attaccgcctttgagtgagcTTAGACTCGAGCGGCCGCTTTTTGACACCAGACCAACTGG'}
{' Direction': 'fw primer', ' Construct Number': '1', ' Part Number': '1', 'Primer Sequence': 'TTTAATTACTAACTTTATCTATGATAGATCCCGTCGTTTTACAACGTCGTGACTGGGAAA'}
{' Direction': 're primer', ' Construct Number': '1', ' Part Number': '2', 'Primer Sequence': 'AAAACGACGGGATCTATCATAGATAAAGTTAGTAATTAAACTTAAAAGTTGTTTAATGTC'}
{' …
Run Code Online (Sandbox Code Playgroud)

python sorting list dna-sequence

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

NetworkX - 绘制没有标签的图形

我在图中有一组节点和边。总共 460 个节点,总共 7606 条边。

节点的名称很长,而且我在绘制图形时遇到了麻烦,而这些长名称不会遮挡图形。

例如这里是一个示例节点名称:(A/mallard/Interior Alaska/9BM1974/2009(H4N6)流感人群,如果这里存在,就会熟悉这个命名)

我有一张图片说明了我面临的问题 这里.

我用来创建图形的代码如下:

import matplotlib.pyplot as plt
nx.draw_networkx(G)
plt.show()
Run Code Online (Sandbox Code Playgroud)

有人知道如何在没有所有这些标签的情况下绘制图形吗?

graph graphviz networkx python-2.7 ipython-notebook

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

将列表(格式化为字符串)反向转换为列表

我有一个字典列表,它看起来像这样:

[{'T': 13472}, {'A': 13472}, {'C': 9866, 'T': 3606}, {'G': 13472}, {'G': 13472}, {'A': 221, 'C': 26, 'T': 12845, 'G': 380}, {'T': 13472}, {'A': 13472}, {'C': 546, 'T': 12926}, {'C': 13472}, {'A': 13472}, {'C': 10674, 'T': 2798}, {'C': 13472}, {'A': 13472}, {'C': 554, 'T': 12918}, {'C': 13472}, {'A': 13472}]
Run Code Online (Sandbox Code Playgroud)

问题是现在,它被格式化为一个字符串。换句话说,当我尝试遍历列表中的项目时,我只能得到单个字符。有没有办法将它转换回“字典列表”类型?

python dictionary list pandas

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

Ruby gem黄瓜SSL错误和Gem来源

我试图为Ruby安装黄瓜宝石.尽管与此有些相关的主题很少,但我找不到具有确切答案的确切问题.在Windows上我尝试运行命令gem install cucumber并返回控制台:

错误:无法从https://rubygems.org/下载数据- SSL_connect返回= 1 errno = 0状态= SSLv3读取服务器证书B:证书验证失败(https://s3.amazonaws.com/production.s3.rubygems .org/specs.4.8.gz)

然后,我用Google搜索的解决方案,并发现了一些建议,以消除震源这里.我跑了gem sources -r,它已被删除.

但不仅仅是黄瓜.现在我甚至无法添加源代码.

ruby ssl ruby-on-rails cucumber

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