Python 标准化_输入_数据()上的值错误

Python 标准化_输入_数据()上的值错误,python,machine-learning,keras,image-segmentation,Python,Machine Learning,Keras,Image Segmentation,我正在尝试在Tensorflow 2.0后端使用Keras实现一个简单的Unet网络 我使用没有预兆数据的自定义图像生成器。我的模板和遮罩是1536x1536 RGB图像(遮罩是黑白的) 由于某种原因,我得到了以下错误: Epoch 1/100 Traceback (most recent call last): File "E:/Explorium/python/unet_trainer.py", line 83, in <module> results = model

我正在尝试在Tensorflow 2.0后端使用Keras实现一个简单的Unet网络

我使用没有预兆数据的自定义图像生成器。我的模板和遮罩是1536x1536 RGB图像(遮罩是黑白的)

由于某种原因,我得到了以下错误:

Epoch 1/100
Traceback (most recent call last):
  File "E:/Explorium/python/unet_trainer.py", line 83, in <module>
    results = model.fit_generator(train_generator, epochs=EPOCHS, steps_per_epoch=STEPS_PER_EPOCH, validation_data=val_generator, validation_steps=VALIDATION_STEPS, callbacks=callbacks)
  File "C:\Users\E-soft\Anaconda3\envs\Explorium\lib\site-packages\tensorflow_core\python\keras\engine\training.py", line 1297, in fit_generator
    steps_name='steps_per_epoch')
  File "C:\Users\E-soft\Anaconda3\envs\Explorium\lib\site-packages\tensorflow_core\python\keras\engine\training_generator.py", line 265, in model_iteration
    batch_outs = batch_function(*batch_data)
  File "C:\Users\E-soft\Anaconda3\envs\Explorium\lib\site-packages\tensorflow_core\python\keras\engine\training.py", line 973, in train_on_batch
    class_weight=class_weight, reset_metrics=reset_metrics)
  File "C:\Users\E-soft\Anaconda3\envs\Explorium\lib\site-packages\tensorflow_core\python\keras\engine\training_v2_utils.py", line 253, in train_on_batch
    extract_tensors_from_dataset=True)
  File "C:\Users\E-soft\Anaconda3\envs\Explorium\lib\site-packages\tensorflow_core\python\keras\engine\training.py", line 2472, in _standardize_user_data
    exception_prefix='input')
  File "C:\Users\E-soft\Anaconda3\envs\Explorium\lib\site-packages\tensorflow_core\python\keras\engine\training_utils.py", line 574, in standardize_input_data
    str(data_shape))
ValueError: Error when checking input: expected img to have shape (1536, 1536, 1) but got array with shape (1536, 1536, 3)
纪元1/100
回溯(最近一次呼叫最后一次):
文件“E:/Explorium/python/unet_trainer.py”,第83行,在
结果=模型拟合生成器(训练生成器,历元=历元,每历元的步骤=每历元的步骤,验证数据=val生成器,验证步骤=验证步骤,回调=回调)
文件“C:\Users\E-soft\Anaconda3\envs\Explorium\lib\site packages\tensorflow\u core\python\keras\engine\training.py”,第1297行,在fit\u生成器中
步骤(名称=“每个时代的步骤”)
文件“C:\Users\E-soft\Anaconda3\envs\Explorium\lib\site packages\tensorflow\u core\python\keras\engine\training\u generator.py”,第265行,在模型迭代中
批处理输出=批处理功能(*批处理数据)
文件“C:\Users\E-soft\Anaconda3\envs\Explorium\lib\site packages\tensorflow\u core\python\keras\engine\training.py”,第973行,在批处理的列中
类别权重=类别权重,重置度量=重置度量)
文件“C:\Users\E-soft\Anaconda3\envs\Explorium\lib\site packages\tensorflow\u core\python\keras\engine\training\u v2\u utils.py”,第253行,在批量生产中
从_数据集中提取_张量_=True)
文件“C:\Users\E-soft\Anaconda3\envs\Explorium\lib\site packages\tensorflow\u core\python\keras\engine\training.py”,第2472行,在用户数据中
异常(前缀为“输入”)
文件“C:\Users\E-soft\Anaconda3\envs\Explorium\lib\site packages\tensorflow\u core\python\keras\engine\training\u utils.py”,第574行,标准化输入数据
str(数据形状))
ValueError:检查输入时出错:预期img具有形状(15361536,1),但获得具有形状(15361536,3)的数组

Keras似乎无法使用
标准化输入数据()
来规范化数据,但我不知道为什么会发生这种情况。

你也能给我们提供模型实现吗?@OrpheeFaucoz,我已经添加了模型实现和所有导入-我在脚本文件中拥有的一切。什么是
输入img
?更具体地说,它的形状是什么?@Orphee Faucoz如第三句所述,我的模板和遮罩是1536x1536 RGB图像(遮罩是黑白的)<代码>模板重塑后为(15361536,3)和
遮罩
重塑后为(15361536,1)。模板示例:掩码示例:是的,我看到了,我想说的是,你的模型的第一层需要一个输入张量,你定义为
输入img
,但我在代码中没有看到它,错误可能来自于此。你能给我们模型实现吗?@OrpheeFaucoz,我已经添加了模型实现和所有导入—脚本文件中的所有内容。什么是
input\u img
?更具体地说,它的形状是什么?@Orphee Faucoz如第三句所述,我的模板和遮罩是1536x1536 RGB图像(遮罩是黑白的)<代码>模板重塑后为(15361536,3)和
遮罩
重塑后为(15361536,1)。模板示例:掩码示例:是的,我看到了,我想说的是,您模型的第一层需要一个输入张量,您定义为
输入img
,但我在代码中没有看到它,错误可能来自于此。
Epoch 1/100
Traceback (most recent call last):
  File "E:/Explorium/python/unet_trainer.py", line 83, in <module>
    results = model.fit_generator(train_generator, epochs=EPOCHS, steps_per_epoch=STEPS_PER_EPOCH, validation_data=val_generator, validation_steps=VALIDATION_STEPS, callbacks=callbacks)
  File "C:\Users\E-soft\Anaconda3\envs\Explorium\lib\site-packages\tensorflow_core\python\keras\engine\training.py", line 1297, in fit_generator
    steps_name='steps_per_epoch')
  File "C:\Users\E-soft\Anaconda3\envs\Explorium\lib\site-packages\tensorflow_core\python\keras\engine\training_generator.py", line 265, in model_iteration
    batch_outs = batch_function(*batch_data)
  File "C:\Users\E-soft\Anaconda3\envs\Explorium\lib\site-packages\tensorflow_core\python\keras\engine\training.py", line 973, in train_on_batch
    class_weight=class_weight, reset_metrics=reset_metrics)
  File "C:\Users\E-soft\Anaconda3\envs\Explorium\lib\site-packages\tensorflow_core\python\keras\engine\training_v2_utils.py", line 253, in train_on_batch
    extract_tensors_from_dataset=True)
  File "C:\Users\E-soft\Anaconda3\envs\Explorium\lib\site-packages\tensorflow_core\python\keras\engine\training.py", line 2472, in _standardize_user_data
    exception_prefix='input')
  File "C:\Users\E-soft\Anaconda3\envs\Explorium\lib\site-packages\tensorflow_core\python\keras\engine\training_utils.py", line 574, in standardize_input_data
    str(data_shape))
ValueError: Error when checking input: expected img to have shape (1536, 1536, 1) but got array with shape (1536, 1536, 3)