使用Keras的神经网络无效的阵列形状?

时间:2018-01-06 19:33:27

标签: python neural-network keras

目前正在研究Francios Chollet撰写的“Python深度学习”一书。我是新手,我收到这个错误代码,尽管他的代码逐字逐句。任何人都可以解释错误信息或需要做些什么来解决它?任何帮助将不胜感激!

from keras.datasets import imdb
import numpy as np
from keras import models
from keras import layers

(train_data, train_labels), (test_data, test_labels) =
imdb.load_data(num_words=10000)


def vectorize_sequences(sequences, dimension=10000):
    results = np.zeros((len(sequences), dimension))
    for i, sequence in enumerate(sequences):
       results[i, sequence] = 1. 
    return results
x_train = vectorize_sequences(train_data)
y_train = vectorize_sequences(test_data)
x_train = np.asarray(train_labels).astype('float32')
y_test = np.asarray(test_labels).astype('float32')


model = models.Sequential()
model.add(layers.Dense(16, activation='relu', input_shape=(10000,)))
model.add(layers.Dense(16, activation='relu'))
model.add(layers.Dense(1, activation='sigmoid'))

model.compile(optimizer='rmsprop', 
         loss='binary_crossentropy', 
         metrics=['accuracy'])

model.fit(x_train, y_train, epochs=4, batch_size=512)
results = model.evaluate(x_test, y_test)

编辑:这是我得到的错误代码的图片: enter image description here

1 个答案:

答案 0 :(得分:1)

我测试了你的代码,发现x_test没有定义。我认为你的意思是将其矢量化如下。有了这个代码,它起作用了:

x_train = vectorize_sequences(train_data)
x_test = vectorize_sequences(test_data)
y_train = np.asarray(train_labels).astype('float32')
y_test = np.asarray(test_labels).astype('float32')