Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何为Keras准备数据集? 动机_Python_Machine Learning_Keras - Fatal编程技术网

Python 如何为Keras准备数据集? 动机

Python 如何为Keras准备数据集? 动机,python,machine-learning,keras,Python,Machine Learning,Keras,通过神经网络运行一组标记向量 例子 查看Keras数据集示例mnist: keras.datasets import mnist (x_tr, y_tr), (x_te, y_te) = mnist.load_data() print x_tr.shape 它似乎是一个三维numpy阵列: (60000, 28, 28) 第一个尺寸用于样品 每个示例功能的第二个和第三个 企图 构建标记向量: X_train = numpy.array([[1] * 128] * (10 ** 4) +

通过神经网络运行一组标记向量

例子 查看Keras数据集示例mnist:

keras.datasets import mnist
(x_tr, y_tr), (x_te, y_te) = mnist.load_data()
print x_tr.shape
它似乎是一个三维numpy阵列:

(60000, 28, 28)
  • 第一个尺寸用于样品
  • 每个示例功能的第二个和第三个
企图 构建标记向量:

X_train = numpy.array([[1] * 128] * (10 ** 4) + [[0] * 128] * (10 ** 4))
X_test = numpy.array([[1] * 128] * (10 ** 2) + [[0] * 128] * (10 ** 2))

Y_train = numpy.array([True] * (10 ** 4) + [False] * (10 ** 4))
Y_test = numpy.array([True] * (10 ** 2) + [False] * (10 ** 2))

X_train = X_train.astype("float32")
X_test = X_test.astype("float32")

Y_train = Y_train.astype("bool")
Y_test = Y_test.astype("bool")
训练守则 结果 为什么对于如此简单的数据集我会得到如此糟糕的结果? 我的数据集是否存在格式错误


谢谢

仅在一个输出节点上使用softmax没有多大意义。如果您将
model.add(激活('softmax'))
更改为
model.add(激活('sigmoid'))
,则您的网络性能良好

或者,您也可以使用两个输出节点,其中
1,0
表示
True
的情况,
0,1
表示
False
的情况。然后可以使用softmax层。您只需相应地更改您的
Y_训练
Y_测试

@c0d3rman“如果您将5、6、7放入softmax,您将得到它们的总和-5/18、6/18、7/18”。这是不对的。看见
model = Sequential()
model.add(Dense(128, 50))
model.add(Activation('relu'))
model.add(Dropout(0.2))
model.add(Dense(50, 50))
model.add(Activation('relu'))
model.add(Dropout(0.2))
model.add(Dense(50, 1))
model.add(Activation('softmax'))

rms = RMSprop()
model.compile(loss='binary_crossentropy', optimizer=rms)

model.fit(X_train, Y_train, batch_size=batch_size, nb_epoch=nb_epoch,
          show_accuracy=True, verbose=2, validation_data=(X_test, Y_test))

score = model.evaluate(X_test, Y_test, show_accuracy=True, verbose=0)
print('Test score:', score[0])
print('Test accuracy:', score[1])
Test score: 13.9705320154
Test accuracy: 1.0