TensorFlow错误:ValueError(“形状%s和%s不兼容”%(自身,其他))

Praveen Raj

我正在尝试将PCB的图像分为损耗函数,分为两类(defectedundefectedcategorical cross-entropy相同的代码如下:

import numpy as np
import matplotlib.pyplot as plt

import tensorflow
from tensorflow.keras.applications import ResNet50
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
from tensorflow.keras.optimizers import SGD
from tensorflow.keras.callbacks import EarlyStopping, ModelCheckpoint


from keras.applications.resnet50 import preprocess_input
from keras.preprocessing.image import ImageDataGenerator

from sklearn.model_selection import train_test_split

def create_compiled_model():
  model = Sequential()
  model.add(ResNet50(include_top=False, weights=RESNET50_WEIGHTS, input_shape=(IMAGE_SIZE, IMAGE_SIZE, 3), pooling=RESNET50_POOLING_AVERAGE))
  model.add(Dense(NUM_CLASSES, activation=DENSE_LAYER_ACTIVATION))
  model.layers[0].trainable = False

  sgd = SGD(lr = 0.01, decay = 1e-6, momentum = 0.9, nesterov = True)
  model.compile(optimizer = sgd, loss = OBJECTIVE_FUNCTION, metrics = LOSS_METRICS)

  return model

def data_splitor():
  x = np.load("/content/data/xtrain.npy")
  y = np.load("/content/data/ytrain.npy")

  # Getting the Test and Train splits
  x_train, x_test, y_train, y_test = train_test_split(x, y, test_size= TRAIN_TEST_SPLIT, shuffle= True)

  # Getting the Train and Validation splits
  x__train, x__valid, y__train, y__valid = train_test_split(x_train, y_train, test_size= TRAIN_TEST_SPLIT, shuffle= True)

  return x__train, x__valid, x_test, y__train, y__valid, y_test

def data_generator(x, y, batch_size, seed=None, shuffle=True):
  data_generator = ImageDataGenerator(horizontal_flip=True, vertical_flip=True, rotation_range=180, brightness_range=[0.3, 1.0], preprocessing_function=preprocess_input)
  generator = data_generator.flow(x_train, y_train, batch_size= batch_size, seed= seed, shuffle=shuffle)
  return generator

def run_program():
  x_train, x_valid, x_test, y_train, y_valid, y_test = data_splitor()
  train_generator = data_generator(x_train, y_train, BATCH_SIZE_TRAINING)
  validation_generator = data_generator(x_valid, y_valid, BATCH_SIZE_VALIDATION)

  cb_early_stopper = EarlyStopping(monitor = 'val_loss', patience = EARLY_STOP_PATIENCE)
  cb_checkpointer = ModelCheckpoint(filepath = '/content/model/best.hdf5', monitor = 'val_loss', save_best_only = True, mode = 'auto')

  model = create_compiled_model()

  fit_history = model.fit_generator(
        train_generator,
        steps_per_epoch=STEPS_PER_EPOCH_TRAINING,
        epochs = NUM_EPOCHS,
        validation_data=validation_generator,
        validation_steps=STEPS_PER_EPOCH_VALIDATION,
        callbacks=[cb_checkpointer, cb_early_stopper]
  )

  plt.figure(1, figsize = (15,8)) 

  plt.subplot(221)
  plt.plot(fit_history.history['acc'])  
  plt.plot(fit_history.history['val_acc'])  
  plt.title('model accuracy')  
  plt.ylabel('accuracy')  
  plt.xlabel('epoch')  
  plt.legend(['train', 'valid']) 

  plt.subplot(222)  
  plt.plot(fit_history.history['loss'])  
  plt.plot(fit_history.history['val_loss'])  
  plt.title('model loss')  
  plt.ylabel('loss')  
  plt.xlabel('epoch')  
  plt.legend(['train', 'valid']) 

  plt.show()


  # Testing
  test_generator = data_generator(x_test, y_test, BATCH_SIZE_TESTING, 123, False)
  test_generator.reset()

  model.load_weights("/content/model/best.hdf5")
  pred = model.predict_generator(test_generator, steps = len(test_generator), verbose = 1)

  predicted_class_indices = np.argmax(pred, axis = 1)


# Running the program
try:
  with tensorflow.device('/device:GPU:0'):
    run_program()
except RuntimeError as e:
  print(e)

执行此操作后,我得到的ValueError如下所示:

ValueError: in user code:

    /usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/training.py:571 train_function  *
        outputs = self.distribute_strategy.run(
    /usr/local/lib/python3.6/dist-packages/tensorflow/python/distribute/distribute_lib.py:951 run  **
        return self._extended.call_for_each_replica(fn, args=args, kwargs=kwargs)
    /usr/local/lib/python3.6/dist-packages/tensorflow/python/distribute/distribute_lib.py:2290 call_for_each_replica
        return self._call_for_each_replica(fn, args, kwargs)
    /usr/local/lib/python3.6/dist-packages/tensorflow/python/distribute/distribute_lib.py:2649 _call_for_each_replica
        return fn(*args, **kwargs)
    /usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/training.py:533 train_step  **
        y, y_pred, sample_weight, regularization_losses=self.losses)
    /usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/compile_utils.py:204 __call__
        loss_value = loss_obj(y_t, y_p, sample_weight=sw)
    /usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/losses.py:143 __call__
        losses = self.call(y_true, y_pred)
    /usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/losses.py:246 call
        return self.fn(y_true, y_pred, **self._fn_kwargs)
    /usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/losses.py:1527 categorical_crossentropy
        return K.categorical_crossentropy(y_true, y_pred, from_logits=from_logits)
    /usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/backend.py:4561 categorical_crossentropy
        target.shape.assert_is_compatible_with(output.shape)
    /usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/tensor_shape.py:1117 assert_is_compatible_with
        raise ValueError("Shapes %s and %s are incompatible" % (self, other))

    ValueError: Shapes (None, 1) and (None, 2) are incompatible

我已经查看过thisthisthis,但是无法解决错误。

我非常感谢您提供的修复此问题的帮助。

感谢Praveen

这是完整的追溯...链接

奥古斯托·梅洛

似乎您的y_train数据的形状为(None,1),而您的网络期望的形状为(None,2)。有两种解决方法:

1)将模型输出更改为1单位,并将损耗更改为二进制交叉熵

要么

2)将y_train数据更改为“分类”。看到这个

如果您可以在此处发布model.summary()和数据集形状,它将有助于我们为您提供帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Colab中的Tensorflow错误-ValueError:形状(无,1)和(无,10)不兼容

来自分类Dev

ValueError:形状1和2不兼容

来自分类Dev

TensorFlow GradCAM-model.fit()-ValueError:形状(None,1)和(None,2)不兼容

来自分类Dev

在tensorflow中获取ValueError,表明我的形状不兼容

来自分类Dev

ValueError:形状(无,1)和(无,2)不兼容

来自分类Dev

“ ValueError:形状(无,1)和(无,6)不兼容”

来自分类Dev

ValueError:形状(无,3)和(无,16)不兼容

来自分类Dev

ValueError:形状()和(150,5)不兼容Tenosrflow

来自分类Dev

ValueError:形状(无,4)和(无,5)不兼容

来自分类Dev

TensorFlow的无效参数错误(形状不兼容)

来自分类Dev

Tensorflow输入形状不兼容

来自分类Dev

Tensorflow概率:ValueError:Tensor的形状(2,2)与提供的形状(2,)不兼容

来自分类Dev

sklearn错误:“ X和y的形状不兼容。”

来自分类Dev

ValueError:形状在LSTM模型中不兼容

来自分类Dev

ValueError:形状(无,10)和(无,32,32,10)不兼容(Keras调谐器)

来自分类Dev

五个分类的CNN:ValueError:形状(无,228、228、1)和(无,1)不兼容

来自分类Dev

Tensorflow - 使用 tf.losses.hinge_loss 导致形状不兼容错误

来自分类Dev

X和y的形状不兼容

来自分类Dev

Excel与自身不兼容

来自分类Dev

TensorFlow 2.x:使用嵌入列时无法以h5格式加载经过训练的模型(ValueError:形状(101、15)和(57218、15)不兼容)

来自分类Dev

Keras / TF的不兼容形状错误中的未知值

来自分类Dev

形状(1,)和()在cond运算符上不兼容

来自分类Dev

tensorflow:模型是用形状(无,无,6)构造的,但是在形状不兼容的输入上被调用

来自分类Dev

tensorflow:模型是用形状(无,无,6)构造的,但是在形状不兼容的输入上被调用

来自分类Dev

tensorflow:模型是用形状(无,无,6)构造的,但是在形状不兼容的输入上被调用

来自分类Dev

tensorflow:模型是用形状(无,无,6)构造的,但是在形状不兼容的输入上被调用

来自分类Dev

如何在密集或展平的图层之后应用Conv1D:ValueError:形状(1、1、3)和(1、1)不兼容

来自分类Dev

Microsoft.Owin类型(如OwinMiddleware和IOwinContext)是否与其他Owin服务器不兼容?

来自分类Dev

可可:隐藏其他应用程序和自身

Related 相关文章

  1. 1

    Colab中的Tensorflow错误-ValueError:形状(无,1)和(无,10)不兼容

  2. 2

    ValueError:形状1和2不兼容

  3. 3

    TensorFlow GradCAM-model.fit()-ValueError:形状(None,1)和(None,2)不兼容

  4. 4

    在tensorflow中获取ValueError,表明我的形状不兼容

  5. 5

    ValueError:形状(无,1)和(无,2)不兼容

  6. 6

    “ ValueError:形状(无,1)和(无,6)不兼容”

  7. 7

    ValueError:形状(无,3)和(无,16)不兼容

  8. 8

    ValueError:形状()和(150,5)不兼容Tenosrflow

  9. 9

    ValueError:形状(无,4)和(无,5)不兼容

  10. 10

    TensorFlow的无效参数错误(形状不兼容)

  11. 11

    Tensorflow输入形状不兼容

  12. 12

    Tensorflow概率:ValueError:Tensor的形状(2,2)与提供的形状(2,)不兼容

  13. 13

    sklearn错误:“ X和y的形状不兼容。”

  14. 14

    ValueError:形状在LSTM模型中不兼容

  15. 15

    ValueError:形状(无,10)和(无,32,32,10)不兼容(Keras调谐器)

  16. 16

    五个分类的CNN:ValueError:形状(无,228、228、1)和(无,1)不兼容

  17. 17

    Tensorflow - 使用 tf.losses.hinge_loss 导致形状不兼容错误

  18. 18

    X和y的形状不兼容

  19. 19

    Excel与自身不兼容

  20. 20

    TensorFlow 2.x:使用嵌入列时无法以h5格式加载经过训练的模型(ValueError:形状(101、15)和(57218、15)不兼容)

  21. 21

    Keras / TF的不兼容形状错误中的未知值

  22. 22

    形状(1,)和()在cond运算符上不兼容

  23. 23

    tensorflow:模型是用形状(无,无,6)构造的,但是在形状不兼容的输入上被调用

  24. 24

    tensorflow:模型是用形状(无,无,6)构造的,但是在形状不兼容的输入上被调用

  25. 25

    tensorflow:模型是用形状(无,无,6)构造的,但是在形状不兼容的输入上被调用

  26. 26

    tensorflow:模型是用形状(无,无,6)构造的,但是在形状不兼容的输入上被调用

  27. 27

    如何在密集或展平的图层之后应用Conv1D:ValueError:形状(1、1、3)和(1、1)不兼容

  28. 28

    Microsoft.Owin类型(如OwinMiddleware和IOwinContext)是否与其他Owin服务器不兼容?

  29. 29

    可可:隐藏其他应用程序和自身

热门标签

归档