我有两个对象张,train
和labels
。该数据集train
有100种功能,并labels
有1种功能。无论train
和labels
有M个条目。类似地,我们有一个dev
和dev_labels
设定的特征和N个条目相同的各编号。从TensorFlow进口Keras后,我们建立一个神经网络,如下所示:
model = keras.Sequential([
keras.layers.Flatten(input_shape=[100]),
keras.layers.Dense(100, activation=tf.nn.relu),
keras.layers.Dense(10, activation=tf.nn.softmax)
])
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
现在,我们要适应模式,与对于Q时代的尺寸P的批次。
model.fit(train_X, train_Y, validation_data=(dev_X, dev_Y), epochs=Q, steps_per_epoch=??, validation_steps=??)
阅读model.fit的文件后,我仍然不知道什么是正确的steps_per_epoch
或validation_steps
这里。当使用数据张量作为输入提供给模型,这些参数必须被指定。在这个例子中,你会我们指定steps_per_epoch
和validation_steps
?
steps_per_epoch应大致等于(默认为32)的训练样例通过批量大小划分数。类似地validation_steps应大致等于验证实例由批量大小划分数。你可以找到的文档here。
steps_per_epoch:整数或无。宣布一个历元结束并且开始下一个历元之前的步骤(样品批次)总数。当与输入张量如TensorFlow数据张量训练,默认无等于在数据集中的样品通过批量大小,或1,如果不能判定的分割的数量。
validation_steps:只有在指定steps_per_epoch相关。的总步数(样品批次)停止之前验证。
在你的情况下,他们应该是
steps_per_epoch = len(train_X) / batch_size
validation_steps = len(dev_X) / batch_size