简体   繁体   English

ValueError:尺寸必须相等(keras)

[英]ValueError: Dimensions must be equal (keras)

I'm trying to train an autoencoder but have problems in reshaping my X_train to fit it to my model model().我正在尝试训练自动编码器,但在重塑我的 X_train 以使其适合我的 model 模型()时遇到问题。

from tensorflow import keras
from keras.layers import *
from keras.models import Model
from keras.models import Sequential 
from keras.optimizers import Adam

from keras.optimizers import RMSprop

from keras.utils import plot_model

X_train = np.array(X_train, dtype=np.float)
X_test =np.array(X_train, dtype=np.float)

X_train = X_train.reshape(len(X_train), 100,1)
X_test = X_test.reshape(len(X_test), 100,1)

#inputs = Input(shape=(230, 1,100))
epoch = 100
batch = 128

def model():
    m = Sequential()
    # ##m.add(Reshape((,)))
    m.add(Flatten())
    m.add(Dense(512, activation='relu'))
    m.add(Dense(128, activation = 'relu'))
    m.add(Dense(2, activation = 'linear'))
    m.add(Dense(128, activation = 'relu'))
    m.add(Dense(512, activation = 'relu'))
    m.add(Dense(784, activation = 'sigmoid'))
    
    m.compile(loss='mean_squared_error', optimizer = 'rmsprop', metrics = ['accuracy'])
    # Fit data to model m
    m.fit(X_train, X_train, batch_size = batch, epochs = epoch)
    m.summary()
    
    #score = m.evaluate(X_test, Y_test, verbose = 0)
    #print('Test loss:' score[0])
    #print('Test accuracy:', score[1])
    #m.summary()
    
    
mod = model()

The of dimension of my data is the following:我的数据的维度如下:

X_train = (523, 100,1) X_test = (523, 100,1) X_train = (523, 100,1) X_test = (523, 100,1)

To fix your issue, change the following:要解决您的问题,请更改以下内容:

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

Delete the Flatten layer and use 100 neurons for the last layer as stated in the comments.如评论中所述,删除Flatten层并在最后一层使用100神经元。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Keras LSTM 层值错误:尺寸必须相等,但为 17 和 2 - Keras LSTM Layer ValueError: Dimensions must be equal, but are 17 and 2 ValueError:尺寸必须相等,输入形状 - ValueError: Dimensions must be equal, with input shapes ValueError:尺寸必须相等,但对于'MatMul_1'(op:'MatMul'),输入形状为784和500:[?,784],[500,500] - ValueError: Dimensions must be equal, but are 784 and 500 for 'MatMul_1' (op: 'MatMul') with input shapes: [?,784], [500,500] ValueError:尺寸必须相等,但对于具有输入形状的“mul_18”(操作:“Mul”)为 2 和 80:[?,?,?,5,2], [?,?,?,5,80] - ValueError: Dimensions must be equal, but are 2 and 80 for 'mul_18' (op: 'Mul') with input shapes: [?,?,?,5,2], [?,?,?,5,80] ValueError:尺寸必须相等,但输入形状为 100 和 19:[?,100], [?,100,19] - ValueError: Dimensions must be equal, but are 100 and 19 with input shapes: [?,100], [?,100,19] Tensorflow错误:尺寸必须相等 - Tensorflow error : Dimensions must be equal ValueError:两个形状中的尺寸2必须相等,但分别为3和32 - ValueError: Dimension 2 in both shapes must be equal, but are 3 and 32 ValueError:使用可迭代设置时必须具有相等的 len 键和值 - ValueError: Must have equal len keys and value when setting with an iterable f1_score:ValueError所有输入数组的维数必须相同 - f1_score : ValueError all the input arrays must have same number of dimensions 线性回归:ValueError:除串联轴外,所有输入数组维必须完全匹配 - Linear regression:ValueError: all the input array dimensions except for the concatenation axis must match exactly
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM