我有一个包含许多子图的图。我有一些边在两个方向上连接两个节点,即 A-->B 和 B-->A。双向性很重要,因为它代表我们缺乏关于 A 去 B 还是 B 去 A 的知识,我们没有简单的方法来确定哪个是正确的。
我想知道有多少个子图,并将每个子图中的边输出到 Pandas DataFrame。但是,NetworkX 仅在提供的 connected_components_subgraph(G) 函数中接受无向图。当我将图转换为无向图时,我可以使用 connected_components_subgraph() 来获取每个边中的节点,但是我失去了边的方向性。
有没有一种简单的方法可以完成我想要实现的目标?
我想知道是否可以将Jupyter笔记本导出到与笔记本本身不同的目录中?我正在使用它来构建笔记本的HTML版本,并且希望它们位于docs/我的GitHub存储库中(这是为了利用GH页)。
如果我将数据对象预分散到多个工作节点上,是否会将它完整地复制到每个工作节点上?如果该数据对象很大,这样做有好处吗?
以该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)
我问的原因是因为我注意到以下现象:
delayed似乎将数据重新发送到工作程序节点,从而使内存使用量大约增加了一倍。似乎预分散并没有按照我的预期做,这允许工作节点引用预分散的数据。futures接口需要很长的时间来迭代通过循环(显著更长)。我目前不确定如何确定这里的瓶颈。delayed接口,从compute()调用函数的时间到活动在仪表板上反映的时间,存在很大的延迟,我怀疑这是由于数据复制造成的。我有一个现有模型,我在其中加载一些预训练的权重,然后在 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 …
我有一组数据是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) 我正在使用 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) 非常感谢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) 我在图中有一组节点和边。总共 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)
有人知道如何在没有所有这些标签的情况下绘制图形吗?
我有一个字典列表,它看起来像这样:
[{'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)
问题是现在,它被格式化为一个字符串。换句话说,当我尝试遍历列表中的项目时,我只能得到单个字符。有没有办法将它转换回“字典列表”类型?
我试图为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,它已被删除.
但不仅仅是黄瓜.现在我甚至无法添加源代码.
python ×5
graph ×2
list ×2
networkx ×2
canopy ×1
cucumber ×1
dask ×1
dictionary ×1
dna-sequence ×1
enthought ×1
graphviz ×1
jupyter ×1
nbconvert ×1
pandas ×1
pyinstaller ×1
python-2.7 ×1
pytorch ×1
ruby ×1
scikit-learn ×1
scipy ×1
sorting ×1
ssl ×1