Error when checking target: expected activation_9 to have shape (2,) but got array with shape (5,)

问题描述:

在从二分类做到五分类的时候,报错如下:

Error when checking target: expected activation_9 to have shape (2,) but got array with shape (5,)

解决方案

    y1 = keras.layers.core.Dense(5)(y1)#五分类而非二分类

    y_train = keras.utils.to_categorical(y_train,num_classes=5)  

    y_test = keras.utils.to_categorical(y_test,num_classes=5)
    y1 = keras.layers.core.Dense(5)(y1)#五分类而非二分类

所以需要更改两个地方,一个是num_classes的值改为5,同时训练模型最后一层的密集层也要改为5。

另外以下两点也要特别注意。标签命名时候也有一定的规矩。

  1. label的取值必须从0开始;
  2. label必须是连续的整数(不能间断);
    总结起来就是:label的取值必须是从0开始的连续整数。 (假如有5类,那么label的取值1,2,3,4,5或者0,1,2,4,5都是不行的)。

从二分类转变为多分类主要改这两个地方的代码。

运行结果:

参考链接:

https://stackoverflow.com/questions/49392972/error-when-checking-target-expected-dense-3-to-have-shape-3-but-got-array-wi

https://blog.csdn.net/qq295456059/article/details/77264081

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Error when checking target: expected add_6 to have shape (3, 3) but got array with shape (3, 1)是报错,源代码为import pandas as pd import numpy as np import matplotlib.pyplot as plt from keras.models import Model, Input from keras.layers import Conv1D, BatchNormalization, Activation, Add, Flatten, Dense from keras.optimizers import Adam # 读取CSV文件 data = pd.read_csv("3c_left_1-6.csv", header=None) # 将数据转换为Numpy数组 data = data.values # 定义输入形状 input_shape = (data.shape[1], 1) # 定义深度残差网络 def residual_network(inputs): # 第一层卷积层 x = Conv1D(32, 3, padding="same")(inputs) x = BatchNormalization()(x) x = Activation("relu")(x) # 残差块 for i in range(5): y = Conv1D(32, 3, padding="same")(x) y = BatchNormalization()(y) y = Activation("relu")(y) y = Conv1D(32, 3, padding="same")(y) y = BatchNormalization()(y) y = Add()([x, y]) x = Activation("relu")(y) # 全局池化层和全连接层 x = Flatten()(x) x = Dense(128, activation="relu")(x) x = Dense(data.shape[1], activation="linear")(x) outputs = Add()([x, inputs]) return outputs # 构建模型 inputs = Input(shape=input_shape) outputs = residual_network(inputs) model = Model(inputs=inputs, outputs=outputs) # 编译模型 model.compile(loss="mean_squared_error", optimizer=Adam()) # 训练模型 model.fit(data[..., np.newaxis], data[..., np.newaxis], epochs=100) # 预测数据 predicted_data = model.predict(data[..., np.newaxis]) # 可视化去噪前后的数据 fig, axs = plt.subplots(3, 1, figsize=(12, 8)) for i in range(3): axs[i].plot(data[:, i], label="Original Signal") axs[i].plot(predicted_data[:, i], label="Denoised Signal") axs[i].legend() plt.savefig("denoised_signal.png") # 将去噪后的数据保存为CSV文件 df = pd.DataFrame(predicted_data, columns=["x", "y", "z"]) df.to_csv("denoised_data.csv", index=False)
最新发布
05-10
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ACMSunny

赠人玫瑰,手有余香。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值