当前位置: 首页 > 知识库问答 >
问题:

ValueError:输入数组的采样数应与目标数组的采样数相同。找到1280个输入样本和320个目标样本

文喜
2023-03-14
 
What's wrong with this code?      
 faces = datasets.fetch_olivetti_faces()
    X_train, X_test, y_train, y_test = train_test_split(faces.data,faces.target, test_size=0.2)
    X_train = X_train.reshape(-1,32 ,32 ,1)
    X_test = X_test.reshape(-1,32 , 32 ,1)
    # Normalize the data
    X_train = X_train.astype('float32')
    X_test = X_test.astype('float32')
    X_train /= 255.0
    X_test /= 255.0
    # One hot 
    classes=40
    y_train = keras.utils.to_categorical(y_train, classes)
    y_test = keras.utils.to_categorical(y_test, classes)
    #Build LetNet model with Keras
    def LetNet(width, height, depth, classes):
      # initialize the model
      model = Sequential()
      # first layer, convolution and pooling
      model.add(Conv2D(input_shape=(width, height, depth), kernel_size=(5, 5), filters=6, strides=(1,1), activation='tanh'))
      model.add(MaxPooling2D(pool_size=(2, 2), strides=(2, 2)))

      # second layer, convolution and pooling
      model.add(Conv2D(input_shape=(width, height, depth), kernel_size=(5, 5), filters=16, strides=(1,1), activation='tanh'))
      model.add(MaxPooling2D(pool_size=(2, 2), strides=(2, 2)))
      # Fully connection layer
      model.add(Flatten())
      model.add(Dense(120,activation = 'tanh'))
      model.add(Dense(84,activation = 'tanh'))
      # softmax classifier
      model.add(Dense(classes))
      model.add(Activation("softmax"))
      return model
    LetNet_model = LetNet(32,32,1,40)
    LetNet_model.summary() 
    #Strat training
    LetNet_model.compile(optimizer=Adam(lr=0.001, beta_1=0.9, beta_2=0.999, epsilon=1e-08),loss = 'categorical_crossentropy',metrics=['accuracy'])
    History = LetNet_model.fit(X_train, y_train, epochs=5, batch_size=32,validation_data=(X_test, y_test))

共有1个答案

孔冥夜
2023-03-14

我的计算表明,输入图像的形状是64乘64,带有1个通道,而不是32乘32。

您可以更改以下行。

    X_train = X_train.reshape(-1, 64 ,64 ,1)
    X_test = X_test.reshape(-1, 64 , 64 ,1)

另外,更改模型输入。

LetNet_model = LetNet(64,64,1,40)
 类似资料:
  • 我从Udemy那里学习KNN。数据集从这里下载。 当我尝试运行以下代码时: 我得到的错误是: 回溯(最近一次调用):文件“/home/ashutosh/Machine Learning A-Z Template Folder/Part 3-分类/第15节-K-最近邻(K-NN)/knn(1.py)”,第24行,cm=混淆矩阵(y\u test,y\u pred) 文件“/home/ashutosh

  • 我已经在中获得了记录数,我只需要知道如何才能获得的数据 提前感谢!

  • 主要内容:降采样,升采样,频率转换,插值处理数据重采样是将时间序列从一个频率转换至另一个频率的过程,它主要有两种实现方式,分别是降采样和升采样,降采样指将高频率的数据转换为低频率,升采样则与其恰好相反,说明如下: 方法 说明 降采样 将高频率(间隔短)数据转换为低频率(间隔长)。 升采样 将低频率数据转换为高频率。 Pandas 提供了 resample() 函数来实现数据的重采样。 降采样 通过 resample() 函数完成数据的降采样

  • 问题内容: 在不从javascript中的数组进行替换的情况下,获取随机样本的一种干净方法是什么?所以假设有一个数组 我想随机采样5个唯一值;例如,生成一个长度为5的随机子集。要生成一个随机样本,可以执行以下操作: 但是,如果多次执行此操作,则可能会多次捕获同一项。 问题答案: 我建议使用Fisher-Yates混洗混洗数组的副本并进行切片: 请注意,这不是获取大型数组的随机小子集的最有效方法,因

  • 在分布式跟踪中,数据量可能非常高,因此采样可能很重要(您通常不需要导出所有spans以获得正在发生的情况)。Spring Cloud Sleuth具有Sampler策略,您可以实现该策略来控制采样算法。采样器不会停止生成跨度(相关)ids,但是它们确实阻止了附加和导出的标签和事件。默认情况下,您将获得一个策略,如果跨度已经处于活动状态,则会继续跟踪,但新策略始终被标记为不可导出。如果您的所有应用程