Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 必须使用dtype float和shape[?,?,?,,?,?]为占位符张量输入一个值_Python_Numpy_Tensorflow_Keras_Callback - Fatal编程技术网

Python 必须使用dtype float和shape[?,?,?,,?,?]为占位符张量输入一个值

Python 必须使用dtype float和shape[?,?,?,,?,?]为占位符张量输入一个值,python,numpy,tensorflow,keras,callback,Python,Numpy,Tensorflow,Keras,Callback,我正在使用tensorflow 2.3.0版和tensorflow gpu 1.14.0版的类似UNet的模型(实际上是注意力UNet)。我在GPU中运行我的模型。它接受一个张量,填充它,最终在扩展路径将其裁剪到原始大小后,这样填充就被移除了(来自Keras的简化摘要): 。。。图层…( 我为训练集和验证集创建数据生成器,并编译模型。然后我将其与以下代码相匹配: def run(self, load_weights: bool = False): config = tf.co

我正在使用tensorflow 2.3.0版和tensorflow gpu 1.14.0版的类似UNet的模型(实际上是注意力UNet)。我在GPU中运行我的模型。它接受一个张量,填充它,最终在扩展路径将其裁剪到原始大小后,这样填充就被移除了(来自Keras的简化摘要):

。。。图层…(

我为训练集和验证集创建数据生成器,并编译模型。然后我将其与以下代码相匹配:

def run(self, load_weights: bool = False):
        config = tf.compat.v1.ConfigProto(device_count={'GPU': 1})
        config.gpu_options.allow_growth = True
        config.log_device_placement=True      
        
        sess =  tf.compat.v1.Session(config=config)
        
        with sess as sess:
                        
            self.get_model()
            print(self._model.summary())

            self.initialise_datagenerator()
            
            if load_weights:
                self.get_weights()
                
            callbacks = []
            if with_callbacks:
                earlystopper = EarlyStopping(patience = 5, verbose = 1, monitor = 'val_loss')
                checkpointer = ModelCheckpoint('../../save/model', verbose = 1, monitor = 'val_loss', save_best_only= True,save_weights_only= True)
                tb = TensorBoard(log_dir = '../../logs_tb/model', histogram_freq= 0, write_graph = True, write_grads = False, write_images = True)
                callbacks.extend([earlystopper, checkpointer, tb])

            print('Fitting started')
            self._model.fit(self.training_generator, epochs = self._epochs, validation_data = self.validation_generator, callbacks = callbacks)
它确实成功地运行了第一个时代。但是,当它必须输出验证丢失时,它会抛出以下错误,这似乎与裁剪层有关。我自己也无法理解,因为它在训练中运行良好

Traceback (most recent call last):
  File "/XXX/XXX/XXX/XXX/XXX/XXX/training/train_script.py", line 27, in <module>
    t.run()
  File "/XXX/XXX/XXX/XXX/XXX/XXX/model/train.py", line 243, in run
    self._model.fit(self.training_generator, epochs = self._epochs, validation_data = self.validation_generator, callbacks = callbacks)
  File "/home/XXX/miniconda3/envs/segment/lib/python3.7/site-packages/tensorflow/python/keras/engine/training_v1.py", line 809, in fit
    use_multiprocessing=use_multiprocessing)
  File "/home/XXX/miniconda3/envs/segment/lib/python3.7/site-packages/tensorflow/python/keras/engine/training_generator.py", line 590, in fit
    steps_name='steps_per_epoch')
  File "/home/kdqm927/miniconda3/envs/segment/lib/python3.7/site-packages/tensorflow/python/keras/engine/training_generator.py", line 310, in model_iteration
    steps_name='validation_steps')
  File "/home/XXX/miniconda3/envs/segment/lib/python3.7/site-packages/tensorflow/python/keras/engine/training_generator.py", line 256, in model_iteration
    batch_outs = batch_function(*batch_data)
  File "/home/XXX/miniconda3/envs/segment/lib/python3.7/site-packages/tensorflow/python/keras/engine/training_v1.py", line 1165, in test_on_batch
    outputs = self.test_function(inputs)  # pylint: disable=not-callable
  File "/home/XXX/miniconda3/envs/segment/lib/python3.7/site-packages/tensorflow/python/keras/backend.py", line 3825, in __call__
    run_metadata=self.run_metadata)
  File "/home/XXX/miniconda3/envs/segment/lib/python3.7/site-packages/tensorflow/python/client/session.py", line 1472, in __call__
    run_metadata_ptr)
tensorflow.python.framework.errors_impl.InvalidArgumentError: You must feed a value for placeholder tensor 'cropping3d_target' with dtype float and shape [?,?,?,?,?]
     [[{{node cropping3d_target}}]]
回溯(最近一次呼叫最后一次):
文件“/XXX/XXX/XXX/XXX/XXX/training/train_script.py”,第27行,在
t、 运行()
文件“/XXX/XXX/XXX/XXX/XXX/model/train.py”,第243行,运行中
self.\u model.fit(self.training\u generator,epochs=self.\u epochs,validation\u data=self.validation\u generator,callbacks=callbacks)
文件“/home/XXX/miniconda3/envs/segment/lib/python3.7/site packages/tensorflow/python/keras/engine/training_v1.py”,第809行,适合
使用多处理=使用多处理)
文件“/home/XXX/miniconda3/envs/segment/lib/python3.7/site packages/tensorflow/python/keras/engine/training_generator.py”,第590行
步骤(名称=“每个时代的步骤”)
文件“/home/kdqm927/miniconda3/envs/segment/lib/python3.7/site packages/tensorflow/python/keras/engine/training_generator.py”,第310行,在模型迭代中
步骤(name='validation')
文件“/home/XXX/miniconda3/envs/segment/lib/python3.7/site packages/tensorflow/python/keras/engine/training\u generator.py”,第256行,在模型迭代中
批处理输出=批处理功能(*批处理数据)
文件“/home/XXX/miniconda3/envs/segment/lib/python3.7/site packages/tensorflow/python/keras/engine/training\u v1.py”,第1165行,批量测试
输出=自测试功能(输入)#pylint:disable=不可调用
文件“/home/XXX/miniconda3/envs/segment/lib/python3.7/site packages/tensorflow/python/keras/backend.py”,第3825行,在__
run\u元数据=self.run\u元数据)
文件“/home/XXX/miniconda3/envs/segment/lib/python3.7/site packages/tensorflow/python/client/session.py”,第1472行,在__
运行_元数据_ptr)
tensorflow.python.framework.errors\u impl.InvalidArgumentError:必须为带有数据类型float和形状[?,?,,,?,,?,?]的占位符tensor“cropping3d\u target”提供一个值
[{{node croping3d_target}}]]