我对keras完全不熟悉并开始使用,我正在尝试关注this教程。我使用theano后端。 可悲的是,我在这条线上遇到了一个困难:
model.add(Dense(num_pixels, input_dim=num_pixels, init='normal', activation='relu'))
它说:
用户警告:更新您对Keras 2 API的
Dense
电话:Dense(784, input_dim=784, activation="relu", kernel_initializer="normal")
''调用Keras 2 API:'+签名)INFO(theano.gof.compilelock):刷新锁[...]
也会抛出错误: ImportError:DLL加载失败:动态链接库(DLL) 初始化例程失败。
我做错了什么?非常感谢每个想法:D
这是完整的错误追溯(部分是德语):
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
<ipython-input-59-12b29e43ecfe> in <module>()
----> 1 model = baseline_model()
2
3 model.fit(x_train, y_train, validation_data=(x_test, y_test), nb_epoch=10, batch_size=200, verbose=2)
4
5 scores = model.evaluate(x_test, y_test, verbose=0)
<ipython-input-57-16bc1d352f3b> in baseline_model()
2 model = Sequential() #RNN?
3 #InputLayer
----> 4 model.add(Dense(num_pixels, input_dim=num_pixels, init='normal', activation='relu'))
5 #OutputLayer
6 model.add(Dense(num_classes, init='normal', activation='softmax'))
C:\ProgramData\Anaconda3\lib\site-packages\keras\models.py in add(self, layer)
420 # and create the node connecting the current layer
421 # to the input layer we just created.
--> 422 layer(x)
423
424 if len(layer.inbound_nodes) != 1:
C:\ProgramData\Anaconda3\lib\site-packages\keras\engine\topology.py in __call__(self, inputs, **kwargs)
526 '`layer.build(batch_input_shape)`')
527 if len(input_shapes) == 1:
--> 528 self.build(input_shapes[0])
529 else:
530 self.build(input_shapes)
C:\ProgramData\Anaconda3\lib\site-packages\keras\layers\core.py in build(self, input_shape)
825 name='kernel',
826 regularizer=self.kernel_regularizer,
--> 827 constraint=self.kernel_constraint)
828 if self.use_bias:
829 self.bias = self.add_weight((self.units,),
C:\ProgramData\Anaconda3\lib\site-packages\keras\engine\topology.py in add_weight(self, shape, initializer, name, trainable, regularizer, constraint)
362 """
363 initializer = initializers.get(initializer)
--> 364 weight = K.variable(initializer(shape), dtype=K.floatx(), name=name)
365 if regularizer is not None:
366 self.add_loss(regularizer(weight))
C:\ProgramData\Anaconda3\lib\site-packages\keras\initializers.py in __call__(self, shape, dtype)
71 def __call__(self, shape, dtype=None):
72 return K.random_normal(shape, self.mean, self.stddev,
---> 73 dtype=dtype, seed=self.seed)
74
75 def get_config(self):
C:\ProgramData\Anaconda3\lib\site-packages\keras\backend\theano_backend.py in random_normal(shape, mean, stddev, dtype, seed)
1935 seed = np.random.randint(1, 10e6)
1936 rng = RandomStreams(seed=seed)
-> 1937 return rng.normal(size=shape, avg=mean, std=stddev, dtype=dtype)
1938
1939
C:\ProgramData\Anaconda3\lib\site-packages\theano\sandbox\rng_mrg.py in normal(self, size, avg, std, ndim, dtype, nstreams)
1572 n_samples = prod(size) + (prod(size) % 2)
1573 flattened = self.uniform(size=(n_samples,), dtype=dtype,
-> 1574 nstreams=nstreams)
1575
1576 if constant:
C:\ProgramData\Anaconda3\lib\site-packages\theano\sandbox\rng_mrg.py in uniform(self, size, low, high, ndim, dtype, nstreams)
1352 if nstreams is None:
1353 nstreams = self.n_streams(size)
-> 1354 rstates = self.get_substream_rstates(nstreams, dtype)
1355
1356 if self.use_cuda and dtype == 'float32':
C:\ProgramData\Anaconda3\lib\site-packages\theano\configparser.py in res(*args, **kwargs)
115 def res(*args, **kwargs):
116 with self:
--> 117 return f(*args, **kwargs)
118 return res
119
C:\ProgramData\Anaconda3\lib\site-packages\theano\sandbox\rng_mrg.py in get_substream_rstates(self, n_streams, dtype, inc_rstate)
1254 # If multMatVect.dot_modulo isn't compiled, compile it.
1255 if multMatVect.dot_modulo is None:
-> 1256 multMatVect(rval[0], A1p72, M1, A2p72, M2)
1257
1258 # This way of calling the Theano fct is done to bypass Theano overhead.
C:\ProgramData\Anaconda3\lib\site-packages\theano\sandbox\rng_mrg.py in multMatVect(v, A, m1, B, m2)
64 o = DotModulo()(A_sym, s_sym, m_sym, A2_sym, s2_sym, m2_sym)
65 multMatVect.dot_modulo = function(
---> 66 [A_sym, s_sym, m_sym, A2_sym, s2_sym, m2_sym], o, profile=False)
67
68 # This way of calling the Theano fct is done to bypass Theano overhead.
C:\ProgramData\Anaconda3\lib\site-packages\theano\compile\function.py in function(inputs, outputs, mode, updates, givens, no_default_updates, accept_inplace, name, rebuild_strict, allow_input_downcast, profile, on_unused_input)
324 on_unused_input=on_unused_input,
325 profile=profile,
--> 326 output_keys=output_keys)
327 # We need to add the flag check_aliased inputs if we have any mutable or
328 # borrowed used defined inputs
C:\ProgramData\Anaconda3\lib\site-packages\theano\compile\pfunc.py in pfunc(params, outputs, mode, updates, givens, no_default_updates, accept_inplace, name, rebuild_strict, allow_input_downcast, profile, on_unused_input, output_keys)
484 accept_inplace=accept_inplace, name=name,
485 profile=profile, on_unused_input=on_unused_input,
--> 486 output_keys=output_keys)
487
488
C:\ProgramData\Anaconda3\lib\site-packages\theano\compile\function_module.py in orig_function(inputs, outputs, mode, accept_inplace, name, profile, on_unused_input, output_keys)
1794 on_unused_input=on_unused_input,
1795 output_keys=output_keys).create(
-> 1796 defaults)
1797
1798 t2 = time.time()
C:\ProgramData\Anaconda3\lib\site-packages\theano\compile\function_module.py in create(self, input_storage, trustme, storage_map)
1660 theano.config.traceback.limit = theano.config.traceback.compile_limit
1661 _fn, _i, _o = self.linker.make_thunk(
-> 1662 input_storage=input_storage_lists, storage_map=storage_map)
1663 finally:
1664 theano.config.traceback.limit = limit_orig
C:\ProgramData\Anaconda3\lib\site-packages\theano\gof\link.py in make_thunk(self, input_storage, output_storage, storage_map)
697 return self.make_all(input_storage=input_storage,
698 output_storage=output_storage,
--> 699 storage_map=storage_map)[:3]
700
701 def make_all(self, input_storage, output_storage):
C:\ProgramData\Anaconda3\lib\site-packages\theano\gof\vm.py in make_all(self, profiler, input_storage, output_storage, storage_map)
1045 compute_map,
1046 no_recycling,
-> 1047 impl=impl))
1048 linker_make_thunk_time[node] = time.time() - thunk_start
1049 if not hasattr(thunks[-1], 'lazy'):
C:\ProgramData\Anaconda3\lib\site-packages\theano\gof\op.py in make_thunk(self, node, storage_map, compute_map, no_recycling, impl)
933 try:
934 return self.make_c_thunk(node, storage_map, compute_map,
--> 935 no_recycling)
936 except (NotImplementedError, utils.MethodNotDefined):
937 # We requested the c code, so don't catch the error.
C:\ProgramData\Anaconda3\lib\site-packages\theano\gof\op.py in make_c_thunk(self, node, storage_map, compute_map, no_recycling)
837 _logger.debug('Trying CLinker.make_thunk')
838 outputs = cl.make_thunk(input_storage=node_input_storage,
--> 839 output_storage=node_output_storage)
840 fill_storage, node_input_filters, node_output_filters = outputs
841
C:\ProgramData\Anaconda3\lib\site-packages\theano\gof\cc.py in make_thunk(self, input_storage, output_storage, storage_map, keep_lock)
1188 cthunk, in_storage, out_storage, error_storage = self.__compile__(
1189 input_storage, output_storage, storage_map,
-> 1190 keep_lock=keep_lock)
1191
1192 res = _CThunk(cthunk, init_tasks, tasks, error_storage)
C:\ProgramData\Anaconda3\lib\site-packages\theano\gof\cc.py in __compile__(self, input_storage, output_storage, storage_map, keep_lock)
1129 output_storage,
1130 storage_map,
-> 1131 keep_lock=keep_lock)
1132 return (thunk,
1133 [link.Container(input, storage) for input, storage in
C:\ProgramData\Anaconda3\lib\site-packages\theano\gof\cc.py in cthunk_factory(self, error_storage, in_storage, out_storage, storage_map, keep_lock)
1584 node.op.prepare_node(node, storage_map, None, 'c')
1585 module = get_module_cache().module_from_key(
-> 1586 key=key, lnk=self, keep_lock=keep_lock)
1587
1588 vars = self.inputs + self.outputs + self.orphans
C:\ProgramData\Anaconda3\lib\site-packages\theano\gof\cmodule.py in module_from_key(self, key, lnk, keep_lock)
1157 try:
1158 location = dlimport_workdir(self.dirname)
-> 1159 module = lnk.compile_cmodule(location)
1160 name = module.__file__
1161 assert name.startswith(location)
C:\ProgramData\Anaconda3\lib\site-packages\theano\gof\cc.py in compile_cmodule(self, location)
1487 lib_dirs=self.lib_dirs(),
1488 libs=libs,
-> 1489 preargs=preargs)
1490 except Exception as e:
1491 e.args += (str(self.fgraph),)
C:\ProgramData\Anaconda3\lib\site-packages\theano\gof\cmodule.py in compile_str(module_name, src_code, location, include_dirs, lib_dirs, libs, preargs, py_module, hide_symbols)
2345 open(os.path.join(location, "__init__.py"), 'w').close()
2346 assert os.path.isfile(lib_filename)
-> 2347 return dlimport(lib_filename)
2348
2349
C:\ProgramData\Anaconda3\lib\site-packages\theano\gof\cmodule.py in dlimport(fullpath, suffix)
300 warnings.filterwarnings("ignore",
301 message="numpy.ndarray size changed")
--> 302 rval = __import__(module_name, {}, {}, [module_name])
303 t1 = time.time()
304 import_time += t1 - t0
ImportError: DLL load failed: Eine DLL-Initialisierungsroutine ist fehlgeschlagen.
答案 0 :(得分:0)
我通过简单地完成重新安装来解决它。也许,有些东西搞砸了旧的。 对于Windows用户,我强烈推荐本教程:http://efavdb.com/gpu-accelerated-theano-keras-with-windows-10/