zoukankan      html  css  js  c++  java
  • ValueError: Shapes (None, 1) and (None, 2) are incompatible

    老是碰见这种问题,解决方法是:

    如果数据集加载了 image_dataset_from_directory, use label_mode='categorial'

    train_ds = tf.keras.preprocessing.image_dataset_from_directory(
      path,
      label_mode='categorial'
    )
    或加载 flow_from_directoryflow_from_dataframe then use class_mode='categorical'
    train_ds = ImageDataGenerator.flow_from_directory(
      path,
      class_mode='categorical'
    )

    范畴交叉熵(Categorical Cross entropy):

    model = Sequential([
        Conv2D(32,3, activation='relu', input_shape=(48,48,1)),
        BatchNormalization(),
        MaxPooling2D(pool_size=(3, 3)),
    
        Flatten(),
        Dense(512, activation='relu'),
        Dense(2,activation='softmax')  # activation change
    ])
    model.compile(optimizer='adam',
                  loss='categorical_crossentropy', # Loss
                  metrics=['accuracy'])

    二元交叉熵(Binary Crossentropy)

    model = Sequential([
        Conv2D(32,3, activation='relu', input_shape=(48,48,1)),
        BatchNormalization(),
        MaxPooling2D(pool_size=(3, 3)),
    
        Flatten(),
        Dense(512, activation='relu'),
        Dense(1,activation='sigmoid') #activation change
    ])
    model.compile(optimizer='adam',
                  loss='binary_crossentropy', # Loss
                  metrics=['accuracy'])

     参考:https://stackoverflow.com/questions/61742556/valueerror-shapes-none-1-and-none-2-are-incompatible?noredirect=1

    我的训练时因为加了下面两句话才开始正常训练的

    MaxPooling2D(pool_size=(3, 3)),
    Flatten(),

     训练如下所示:

  • 相关阅读:
    FreeBSD10下的MySQL5.5配置安装
    TCP Wrappers
    SNAT技术
    子网掩码, 网段主机数计算
    functools wraps
    数据库引擎
    restframework
    Python使用asyncio+aiohttp异步爬取猫眼电影专业版
    Linux 总结
    Nginx日志管理
  • 原文地址:https://www.cnblogs.com/lxz123/p/14252213.html
Copyright © 2011-2022 走看看