1

我试过这个keras 教程。我在我的另一个项目中使用 theano,所以我将 keras 更改为使用 theano 而不是 Tenorflow。但是当我运行本教程时,我首先收到此错误:

nvcc 致命:在 PATH 中找不到编译器“cl.exe”

一段时间后,在第一个 Epoch(共 3 个)中,在样本号 13056(共 25000 个)上,我收到此错误:

文件“test_keras.py”,第 28 行,在 model.fit(X_train, y_train, validation_data=(X_test, y_test), epochs=3, batch_size=64)

文件“C:\Users\domi1_000\Anaconda3\envs\Pyhon27\lib\site-packages\keras\models.py”,第 845 行,适合 initial_epoch=initial_epoch)

文件“C:\Users\domi1_000\Anaconda3\envs\Pyhon27\lib\site-packages\keras\engine\training.py”,第 1485 行,适合 initial_epoch=initial_epoch)

文件“C:\Users\domi1_000\Anaconda3\envs\Pyhon27\lib\site-packages\keras\engine\training.py”,第 1140 行,在 _fit_loop outs = f(ins_batch)

文件“C:\Users\domi1_000\Anaconda3\envs\Pyhon27\lib\site-packages\keras\backend\theano_backend.py”,第 1094 行,调用 返回 self.function(*inputs)

文件“C:\Users\domi1_000\Anaconda3\envs\Pyhon27\lib\site-packages\theano\compile\function_module.py”,第 898 行,调用 storage_map=getattr(self.fn, 'storage_map', None))

文件“C:\Users\domi1_000\Anaconda3\envs\Pyhon27\lib\site-packages\theano\gof\link.py”,第 325 行,在 raise_with_op reraise(exc_type, exc_value, exc_trace)

文件“C:\Users\domi1_000\Anaconda3\envs\Pyhon27\lib\site-packages\theano\compile\function_module.py”,第 884 行,调用 self.fn() 如果 output_subset 是 None else\

文件“C:\Users\domi1_000\Anaconda3\envs\Pyhon27\lib\site-packages\theano\scan_module\scan_op.py”,第 989 行,rval r = p(n, [x[0] for x in i ], o)

文件“C:\Users\domi1_000\Anaconda3\envs\Pyhon27\lib\site-packages\theano\scan_module\scan_op.py”,第 978 行,在 p self、节点中)

文件“theano/scan_module/scan_perform.pyx”,第 445 行,在 theano.scan_module.scan_perform.perform (C:\Users\domi1_000\AppData\Local\Theano\compiledir_Windows-8.1-6.3.9600-Intel64_Family_6_Model_58_St epping_9_GenuineIntel-2.7.12 -64\scan_perform\mod.cpp:5259)

内存错误:

应用导致错误的节点:forall_inplace,cpu,grad_of_scan_fn}(TensorConstant{500}, Subtensor{int64:int64:int64}.0, Elemwise{tanh}.0, Alloc.0, InplaceDimShuffle{0,2,1}。 0、Elemwise{复合{(i0 - sqr(i1))}}.0、子张量{int64:int64:int64}.0、子张量{int64:int64:int64}.0、子张量{int64:int64:int64}。 0, Alloc.0, Alloc.0, Alloc.0, TensorConstant{500}, Subtensor{::, int64:int64:}.0, Subtensor r{::, :int64:}.0, Subtensor{::, int64::}.0, Subtensor{::, int64:int64:}.0, InplaceDimShuffle{1,0}.0, InplaceDimShuffle{1,0}.0, InplaceDimShuffle{1,0}.0, Alloc.0 , InplaceDimShuffle{1,0}.0)

拓扑排序索引:148 输入类型:[TensorType(int64, scalar), TensorType(float32, 3D), TensorType(float32, 3D), TensorType(float32, 3D), TensorType(float32, 3D), TensorType(float32, 3D), TensorType(float32, 3D), TensorType(float32, 3D), TensorType(float32, 3D), TensorType(float32, 3D), TensorType(float32, 3D), TensorType(float32, 3D), TensorType(int64, scalar), TensorType(float32, matrix), TensorType(float32, matrix) , TensorType(float32, matrix), TensorType(float32, matrix), TensorType(float32, matrix), TensorType(float32, matrix), TensorType(float32, matrix), TensorType (float32, 矩阵), TensorType(float32, 矩阵)]

输入形状:[(), (500L, 64L, 100L), (500L, 64L, 100L), (500L, 64L, 400L), (500L, 100L, 64L), (500L, 64L, 100L), (500L, 64L, 400L), (500L, 64L, 100L), (500L, 64L, 100L), (501L, 64L, 100L), (501L, 64L, 100L), (2L, 100L, 400L), (), ( 100L, 100L), (100L, 100L), (100L, 100L), (100L, 100L), (100L, 100L), (100L, 100L), (100L, 100L), (100L, 400L), (100L, 100L)] 输入步幅:[(), (-25600L, 400L, 4L), (25600L, 400L, 4L), (102400L, 1600L, 4L), (-25600L, 4L, 400L), (25600L, 400L, 4L ), (-1600L, 800000L, 4L), (-25600L, 400L, 4L), (-25600L, 400L, 4L), (25600L, 4 00L, 4L), (25600L, 400L, 4L), (160000L, 1600L , 4L), (), (1600L, 4L), (1600L, 4L), (1600L, 4L), (1600L, 4L), (4L, 1600L), (4L, 1600L), (4L, 1600L), ( 1600L, 4L), (4L, 1600L)] 输入值:[array(500L, dtype=int64), '未显示', '未显示', '未显示', '未显示','未显示','未显示','未显示','未显示','未显示','未显示','未显示',数组(500L,dty pe=int64),'未显示','未显示','未显示','未显示','未显示','未显示','未显示','未显示','未显示'] 输出客户端:[[] , [], [Subtensor{int64}(forall_inplace,cpu,grad_of_scan_fn}.2, Constant{1})], [Subtensor{::int64}(forall_inplace,cpu,grad_of_scan_fn}.3, Constant{-1})] ]未显示', '未显示', '未显示', '未显示'] 输出客户端:[[], [], [Subtensor{int64}(forall_inplace,cpu,grad_of_scan_fn}.2, Constant{1})] , [Subtensor{::int64}(forall_inplace,cpu,grad_of_scan_fn}.3, 常量{-1})]]未显示', '未显示', '未显示', '未显示'] 输出客户端:[[], [], [Subtensor{int64}(forall_inplace,cpu,grad_of_scan_fn}.2, Constant{1})] , [Subtensor{::int64}(forall_inplace,cpu,grad_of_scan_fn}.3, 常量{-1})]]

提示:在禁用大多数 Theano 优化的情况下重新运行可以让您回溯该节点的创建时间。这可以通过设置 Theano 标志 'optimizer=fast_compile' 来完成。如果这不起作用,可以使用 'optimizer=None' 禁用 Theano 优化。

这也发生在我的另一个项目中,但问题是尺寸不匹配。它无法将尺寸为 300x200 的节点与尺寸为 100x100 的节点匹配。

任何帮助将非常感激。

4

1 回答 1

0

它说的是它所说的。你的 GPU 达到了内存限制。如果您使用 Theano 作为后端,请尝试设置 CNMeM 和 cuDNN。你的 GPU 有多少内存?

于 2017-04-21T18:27:10.637 回答