Tensorflow曾经在我的电脑上工作.但是现在当我尝试import tensorflow
python本身出错时.我没有收到追溯电话,告诉我错误是什么.我得到一个窗口的提示,上面写着"Python已停止工作".当我点击"debug"时,我得到的是"python.exe中发生未处理的win32异常".我从来没有一个python包实际上错误输出python本身对我来说,如果我没有安装正确的东西,我总是只有python引发的回溯错误.
我已经尝试卸载并重新安装tensorflow(有效地从1.7.0更新到1.12.0),但这没有帮助.我不知道如何搜索这个问题的解决方案,因为我没有给出回溯或错误代码或错误消息,除了上面非常通用的一个.
我目前正在使用安装了tensorflow 1.12.0(仅限CPU)的python 3.6.5.我的操作系统是Windows 7 Enterprise 64位.
有任何想法吗?
编辑:我正在使用的python发行版是通过Anaconda,我试图直接通过anaconda提示符(命令行界面)运行python.
EDIT2:我使用faulthandler
模块来查看是否可以从中获取堆栈跟踪,并且我得到了a Windows fatal exception: code 0xc0000139
和a Windows fatal exception: access violation
,以及链接到frozen importlib._bootstrap
各种__init__.py
模块中的各种代码行的一堆行.
编辑3:对于更多的上下文,这是在工作场所机器上安装了许多安全软件.
我在Windows 10机器上使用python 3.6.3.我使用pip install安装了pydot和graphviz:
py -m pip install pydot
py -m pip install graphviz
Run Code Online (Sandbox Code Playgroud)
我也去了graphviz网站,下载并安装了windows版本:http://www.graphviz.org/Download_windows.php,默认安装到程序文件(x86).但是当我在keras中绘制我的模型时,我仍然得到错误,说我必须安装pydot和graphviz并且导入失败.我可以
import pydot
import graphviz
Run Code Online (Sandbox Code Playgroud)
在我的python控制台上就好了,他们没有错误.我还能做些什么来绘制我的神经网络图?
我正在尝试让一些东西与 keras 的“fit_generator”方法类似。基本上,我有一个(非常)大的小批量数据文件,我想让我的 CPU 抓取小批量数据并填充与我的 GPU 并行的队列,从队列中获取小批量数据并对其进行训练。通过让 CPU 与 GPU 并行工作(而不是让 CPU 抓取一个批次并让 GPU 在该批次上进行训练之前等待 CPU),我应该能够将训练时间减少大约一半。我对 CPU 获取一个小批量所需的时间进行了基准测试,并且它所花费的时间与我的 GPU 训练一个小批量所需的时间相当,因此 CPU 和 GPU 的并行化应该可以正常工作。我还没有在 pytorch 中找到内置方法来执行此操作,如果有,请告诉我。
所以我尝试使用 torch.multiprocessing 模块来做我想做的事情,但我无法完成训练,因为我总是在训练完成之前遇到某种错误。torch.multiprocessing 模块应该是一个包装器,其功能与常规多处理模块基本相同,只是它允许在进程之间共享 pytorch 张量。基本上,我已经将代码设置为具有 2 个函数,一个加载器函数和一个训练器函数,如下所示:
def data_gen(que,PATH,epochs,steps_per_epoch,batch_size=32):
for epoch in range(epochs):
for j in range(steps_per_epoch):
with h5py.File(PATH,'r') as f:
X = f['X'][j*batch_size:(j+1)*batch_size]
Y = f['Y'][j*batch_size:(j+1)*batch_size]
X = autograd.Variable(torch.Tensor(X).resize_(batch_size,256,25).cpu())
Y = autograd.Variable(torch.Tensor(Y).cpu())
que.put((X,Y))
que.put('stop')
que.close()
return
def train_network(que,net,optimizer,epochs):
print('Training for %s epochs...' %epochs)
for epoch in range(epochs):
while(True):
data = que.get()
if(data …
Run Code Online (Sandbox Code Playgroud) 我有一个 CSR 格式的 scipy 稀疏矩阵。它的尺寸为 72665x72665,因此将此矩阵转换为稠密矩阵来执行运算是不切实际的(此矩阵的稠密表示大约为 40 gig)。该矩阵是对称的,有大约 8200 万个非零项 (~1.5%)。
我想要做的是,对于每一行,我想要获得最大 N 值的索引。如果这是一个 numpy 数组,我会这样做np.argpartition
:
for row in matrix:
top_n_idx = np.argpartition(row,-n)[-n:]
Run Code Online (Sandbox Code Playgroud)
对于稀疏矩阵,我可以做类似的事情吗?
我正在尝试将复杂 SQL 查询的结果导入到 Pandas 数据框中。我的查询要求我创建几个临时表,因为我想要的最终结果表包含一些聚合。我的代码如下所示:
cnxn = pyodbc.connect(r'DRIVER=foo;SERVER=bar;etc')
cursor = cnxn.cursor()
cursor.execute('SQL QUERY HERE')
cursor.execute('SECONDARY SQL QUERY HERE')
...
df = pd.DataFrame(cursor.fetchall(),columns = [desc[0] for desc in cursor.description])
Run Code Online (Sandbox Code Playgroud)
我收到一个错误,告诉我形状不匹配:
ValueError: Shape of passed values is (1,900000),indices imply (5,900000)
Run Code Online (Sandbox Code Playgroud)
事实上,所有 SQL 查询的结果应该是一个有 5 列而不是 1 列的表。我已经使用 Microsoft SQL Server Management Studio 运行了 SQL 查询,它可以工作并返回我想要的 5 列表。我试图不将任何列名传递到数据帧中并打印出数据帧的头部,发现熊猫已将 5 列中的所有信息放入 1。每行中的值是由逗号分隔的 5 个值的列表,但 pandas 将整个列表视为 1 列。熊猫为什么要这样做?我也试过走这pd.read_sql
条路线,但我仍然遇到同样的错误。
编辑:
我做了一些更多的调试,考虑到评论。该问题似乎并非源于我的查询是嵌套的。我尝试了一个简单的(一行)查询来返回一个 3 列表,但我仍然遇到相同的错误。打印出来fetchall()
是这样的:
[(str1,str2,str3,datetime.date(stuff),datetime.date(stuff)),
(str1,str2,str3,datetime.date(stuff),datetime.date(stuff)),...]
Run Code Online (Sandbox Code Playgroud)