代码之家  ›  专栏  ›  技术社区  ›  user8512104

ValueError:预期dense\u 1\u输入具有形状(None,4),但得到(78,2)

  •  0
  • user8512104  · 技术社区  · 7 年前

    我根本不了解数组的形状,也不知道如何确定训练数据的年代和批量大小。我的数据有6列,第0列是自变量-一个字符串,第1-4列是深层神经网络输入,第5列是输入的二进制结果。我有99行数据。 我想了解如何消除这个错误。

    #Importing Datasets
    dataset=pd.read_csv('TestDNN.csv')
    x = dataset.iloc[:,[1,5]].values # lower bound independent variable to upper bound in a matrix (in this case up to not including column5)
    y = dataset.iloc[:,5].values # dependent variable vector
    #Splitting data into Training and Test Data
    from sklearn.model_selection import train_test_split
    x_train, x_test, y_train, y_test = train_test_split(x,y, test_size=0.2, random_state=0)
    
    
    #Feature Scaling
    from sklearn.preprocessing import StandardScaler
    sc = StandardScaler()
    x_train = sc.fit_transform(x_train)
    x_test=sc.transform(x_test)
    
    # PART2 - Making ANN, deep neural network
    
    #Importing the Keras libraries and packages
    import keras
    from keras.models import Sequential
    from keras.layers import Dense
    
    #Initialising ANN
    classifier = Sequential()
    
    #Adding the input layer and first hidden layer
    classifier.add(Dense(activation= 'relu', input_dim =4, units=2, 
    kernel_initializer="uniform"))#rectifier activation function
    #Adding second hidden layer
    classifier.add(Dense(activation= 'relu', units=2, 
    kernel_initializer="uniform")) #rectifier activation function
    #Adding the Output Layer
    classifier.add(Dense(activation= 'sigmoid', units=1, 
    kernel_initializer="uniform"))
    
    #Compiling ANN - stochastic gradient descent
    classifier.compile(optimizer='adam', loss='binary_crossentropy',metrics=
    ['accuracy'])
    
    #Fit ANN to training set
    
    #PART 3 - Making predictions and evaluating the model
    
    #Fitting classifier to the training set
    classifier.fit(x_train, y_train, batch_size=32, epochs=5)#original batch is 
    10 and epoch is 100
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   Maxim    7 年前

    问题在于 x 释义该行:

    x = dataset.iloc[:,[1,5]].values 
    

    ... 告诉熊猫们选择第1列和第5列 只有 ,所以它有形状 [78, 2] . 你可能是想 全部的 第5列之前的列:

    x = dataset.iloc[:,:5].values