因此,我的模型非常简单,如下所示,并且在第一次运行时就完全适合/训练了模型。
def CAE(input_shape = (144, 144, 3), filters = [32, 64, 128, 10]):
model = Sequential()
pad3 = 'same'
model.add(Conv2D(filters[0], (5,5), strides=2, padding='same', activation='relu', name='conv1', input_shape=input_shape))
model.add(Conv2D(filters[1], (5,5), strides=2, padding='same', activation='relu', name='conv2'))
model.add(Conv2D(filters[2], (3,3), strides=2, padding=pad3, activation='relu', name='conv3'))
model.add(Flatten())
model.add(Dense(units=filters[3], name='embedding'))
model.add(Dense(units=filters[2]*int(input_shape[0]/8)*int(input_shape[0]/8), activation='relu'))
model.add(Reshape((int(input_shape[0]/8), int(input_shape[0]/8), filters[2])))
model.add(Conv2DTranspose(filters[1], (3,3), strides=2, padding=pad3, activation='relu', name='deconv3'))
model.add(Conv2DTranspose(filters[0], (5,5), strides=2, padding='same', activation='relu', name='deconv2'))
model.add(Conv2DTranspose(input_shape[2], (5,5), strides=2, padding='same', name='deconv1'))
model.summary()
return model
当我再次运行该模型时出现一个问题,即使再次运行它,它也显示了另一个错误。
InvalidArgumentError: You must feed a value for placeholder tensor 'conv1_input' with dtype float and shape [?,144,144,3]
[[node conv1_input (defined at C:\Users\lee\Anaconda3\lib\site-packages\keras\backend\tensorflow_backend.py:517) ]]
Caused by op 'conv1_input', defined at:
File "C:\Users\lee\Anaconda3\lib\runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "C:\Users\lee\Anaconda3\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "C:\Users\lee\Anaconda3\lib\site-packages\spyder_kernels\console\__main__.py", line 11, in <module>
start.main()
File "C:\Users\lee\Anaconda3\lib\site-packages\spyder_kernels\console\start.py", line 310, in main
kernel.start()
File "C:\Users\lee\Anaconda3\lib\site-packages\ipykernel\kernelapp.py", line 505, in start
self.io_loop.start()
File "C:\Users\lee\Anaconda3\lib\site-packages\tornado\platform\asyncio.py", line 148, in start
self.asyncio_loop.run_forever()
File "C:\Users\lee\Anaconda3\lib\asyncio\base_events.py", line 539, in run_forever
self._run_once()
File "C:\Users\lee\Anaconda3\lib\asyncio\base_events.py", line 1775, in _run_once
handle._run()
File "C:\Users\lee\Anaconda3\lib\asyncio\events.py", line 88, in _run
self._context.run(self._callback, *self._args)
File "C:\Users\lee\Anaconda3\lib\site-packages\tornado\ioloop.py", line 690, in <lambda>
lambda f: self._run_callback(functools.partial(callback, future))
File "C:\Users\lee\Anaconda3\lib\site-packages\tornado\ioloop.py", line 743, in _run_callback
ret = callback()
File "C:\Users\lee\Anaconda3\lib\site-packages\tornado\gen.py", line 781, in inner
self.run()
File "C:\Users\lee\Anaconda3\lib\site-packages\tornado\gen.py", line 742, in run
yielded = self.gen.send(value)
File "C:\Users\lee\Anaconda3\lib\site-packages\ipykernel\kernelbase.py", line 357, in process_one
yield gen.maybe_future(dispatch(*args))
File "C:\Users\lee\Anaconda3\lib\site-packages\tornado\gen.py", line 209, in wrapper
yielded = next(result)
File "C:\Users\lee\Anaconda3\lib\site-packages\ipykernel\kernelbase.py", line 267, in dispatch_shell
yield gen.maybe_future(handler(stream, idents, msg))
File "C:\Users\lee\Anaconda3\lib\site-packages\tornado\gen.py", line 209, in wrapper
yielded = next(result)
File "C:\Users\lee\Anaconda3\lib\site-packages\ipykernel\kernelbase.py", line 534, in execute_request
user_expressions, allow_stdin,
File "C:\Users\lee\Anaconda3\lib\site-packages\tornado\gen.py", line 209, in wrapper
yielded = next(result)
File "C:\Users\lee\Anaconda3\lib\site-packages\ipykernel\ipkernel.py", line 294, in do_execute
res = shell.run_cell(code, store_history=store_history, silent=silent)
File "C:\Users\lee\Anaconda3\lib\site-packages\ipykernel\zmqshell.py", line 536, in run_cell
return super(ZMQInteractiveShell, self).run_cell(*args, **kwargs)
File "C:\Users\lee\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py", line 2848, in run_cell
raw_cell, store_history, silent, shell_futures)
File "C:\Users\lee\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py", line 2874, in _run_cell
return runner(coro)
File "C:\Users\lee\Anaconda3\lib\site-packages\IPython\core\async_helpers.py", line 67, in _pseudo_sync_runner
coro.send(None)
File "C:\Users\lee\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py", line 3049, in run_cell_async
interactivity=interactivity, compiler=compiler, result=result)
File "C:\Users\lee\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py", line 3214, in run_ast_nodes
if (yield from self.run_code(code, result)):
File "C:\Users\lee\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py", line 3296, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-9-dd909110843f>", line 152, in <module>
model = CAE(input_shape=(144, 144, 3), filters=[32, 64, 128, 10])
File "<ipython-input-9-dd909110843f>", line 62, in CAE
model.add(Conv2D(filters[0], (5,5), strides=2, padding='same', activation='relu', name='conv1', input_shape=input_shape))
File "C:\Users\lee\Anaconda3\lib\site-packages\keras\engine\sequential.py", line 161, in add
name=layer.name + '_input')
File "C:\Users\lee\Anaconda3\lib\site-packages\keras\engine\input_layer.py", line 178, in Input
input_tensor=tensor)
File "C:\Users\lee\Anaconda3\lib\site-packages\keras\legacy\interfaces.py", line 91, in wrapper
return func(*args, **kwargs)
File "C:\Users\lee\Anaconda3\lib\site-packages\keras\engine\input_layer.py", line 87, in __init__
name=self.name)
File "C:\Users\lee\Anaconda3\lib\site-packages\keras\backend\tensorflow_backend.py", line 517, in placeholder
x = tf.placeholder(dtype, shape=shape, name=name)
File "C:\Users\lee\Anaconda3\lib\site-packages\tensorflow\python\ops\array_ops.py", line 2077, in placeholder
return gen_array_ops.placeholder(dtype=dtype, shape=shape, name=name)
File "C:\Users\lee\Anaconda3\lib\site-packages\tensorflow\python\ops\gen_array_ops.py", line 5790, in placeholder
"Placeholder", dtype=dtype, shape=shape, name=name)
File "C:\Users\lee\Anaconda3\lib\site-packages\tensorflow\python\framework\op_def_library.py", line 788, in _apply_op_helper
op_def=op_def)
File "C:\Users\lee\Anaconda3\lib\site-packages\tensorflow\python\util\deprecation.py", line 507, in new_func
return func(*args, **kwargs)
File "C:\Users\lee\Anaconda3\lib\site-packages\tensorflow\python\framework\ops.py", line 3300, in create_op
op_def=op_def)
File "C:\Users\lee\Anaconda3\lib\site-packages\tensorflow\python\framework\ops.py", line 1801, in __init__
self._traceback = tf_stack.extract_stack()
<Second run>
InvalidArgumentError (see above for traceback): You must feed a value for placeholder tensor 'conv1_input' with dtype float and shape [?,144,144,3]
[[node conv1_input (defined at C:\Users\lee\Anaconda3\lib\site-packages\keras\backend\tensorflow_backend.py:517) ]]
<Third run>
InvalidArgumentError (see above for traceback): You must feed a value for placeholder tensor 'conv1_input_2' with dtype float and shape [?,144,144,3]
[[node conv1_input_2 (defined at C:\Users\lee\Anaconda3\lib\site-packages\keras\backend\tensorflow_backend.py:517) ]]
[与第二轮类似,它解决了'conv1_input2',但是在第三轮中'conv1_input2'存在问题。
[每当我运行它时,该错误就会显示出稍有不同,并且我不知道它来自哪里。
===================================更新============= =====================
This is the line of code where it actually got stuck.
model.fit(x_train, x_train, batch_size= 256, epochs=1, shuffle=True,
validation_data=(x_val, x_val),
callbacks= [keras.callbacks.TensorBoard(log_dir='/mnt/log'+datetime_str,
write_grads=True,histogram_freq=1)])
我只是将callbacks参数设置为None,问题就消失了。当一次又一次地覆盖它时,我认为可能会发生崩溃。