我想在tf.keras中使用SGD优化器。但是SGD的细节说
梯度下降(与动量)优化器。
这是否意味着SGD不支持“数据集阶段的随机洗牌示例”?
我检查了SGD的来源,似乎没有随机的洗牌方法。我对SGD的理解是对随机样本应用梯度下降。
但它只在动量和nesterov的情况下进行梯度下降。
我在代码中定义的批处理大小是否代表SGD随机洗牌阶段?
如果是这样的话,它会随机地洗牌,但从不使用相同的数据集,不是吗?
我的理解正确吗?
我编写了关于批处理的代码如下所示。
(x_train, y_train)).shuffle(10000).batch(32)
test_ds = tf.data.Dataset.from_tensor_slices((x_test, y_test)).batch(32)发布于 2021-01-24 19:03:29
我不确定这是否是您要寻找的,但尝试使用tf.data.Dataset作为您的数据集。例如,对于mnist,您可以很容易地创建dataset变量,对示例进行洗牌并分批处理:
shuffle_buffer_size = 100
batch_size = 10
train, test = tf.keras.datasets.fashion_mnist.load_data()
images, labels = train
images = images/255
dataset = tf.data.Dataset.from_tensor_slices((images, labels))
dataset.shuffle(shuffle_buffer_size).batch(batch_size)您可以查看有关数据集的教程:td.data
https://stackoverflow.com/questions/65872559
复制相似问题