Python 3.x MNIST数据设置批处理

Python 3.x MNIST数据设置批处理,python-3.x,tensorflow,Python 3.x,Tensorflow,我正在训练模型。但是,当我应用教程中的代码时:batch_x,batch_y=mnist.train.next_batch50。这表明TensorFlow模型中没有属性“train”。我知道这是过时的代码,我试图转换为TensorFlow的新版本。但是,我找不到一个匹配的代码,它可以做与上面代码行相同的事情。我打赌有办法,但我想不出一个解决办法 我发现一个方法要求我使用tf.data.Dataset.batchbatch\u size。 我尝试了下面的方法,但没有一种有效 a. batch_x,

我正在训练模型。但是,当我应用教程中的代码时:batch_x,batch_y=mnist.train.next_batch50。这表明TensorFlow模型中没有属性“train”。我知道这是过时的代码,我试图转换为TensorFlow的新版本。但是,我找不到一个匹配的代码,它可以做与上面代码行相同的事情。我打赌有办法,但我想不出一个解决办法

我发现一个方法要求我使用tf.data.Dataset.batchbatch\u size。 我尝试了下面的方法,但没有一种有效

a. batch_x, batch_y = mnist.train.next_batch(50)

b. batch_x, batch_y =  tf.data.Dataset.batch(batch_size)

c. batch_x, batch_y =  tf.data.Dataset.batch(50)

d. batch_x, batch_y = mnist.batch(50)
将tf.Session作为SES: 首先,运行vars_初始化器初始化所有变量 sess.runvars\u初始值设定项 对于我,请按步骤: 每批:50张图片 批次x,批次y=mnist.train.next\u批次50 训练模型 辍学保留\u保留百分比:0.5->50%将被辍学 sess.runcnn_trainer,feed_dict={x:batch_x,y_true:batch_y,hold_prob:0.5} 测试模型:每100步 每100次训练运行一段代码,每次运行一批 如果i%100==0: 在步骤{}上打印.格式I 打印“准确度:” 比较以查找y_pred和y_true的匹配项 matches=tf.equaltf.argmaxy\u pred,1,tf.argmaxy\u true,1 将匹配项从整数强制转换为tf.float32 使用匹配的平均值计算精度 acc=tf.reduce_meanstf.castmatches,tf.float32 在每个第100步测试模型 使用测试数据集 辍学:无因考试而辍学,无因培训而辍学。 test\u accurity=sess.runacc,feed\u dict={x:mnist.test.images,y\u true:mnist.test.labels,保持\u prob:1.0} 印刷精度测试 打印“\n”
这使用了TensorFlow 1.11.0和Keras,旨在展示如何使用该批次。你必须使它适应你的需要

import tensorflow as tf
from tensorflow import keras as k


(x_train, y_train), (X_test, Y_test) = tf.keras.datasets.mnist.load_data()
X_train = x_train.reshape(x_train.shape[0], 28, 28,1)
y_train = tf.keras.utils.to_categorical(y_train,10)
X_test = X_test.reshape(X_test.shape[0], 28, 28,1)
Y_test = tf.keras.utils.to_categorical(Y_test,10)


train_dataset = tf.data.Dataset.from_tensor_slices((X_train, y_train))
train_dataset = train_dataset.batch(32)

test_dataset = tf.data.Dataset.from_tensor_slices((X_test, Y_test))
test_dataset = test_dataset.batch(32)


model = tf.keras.models.Sequential([
    tf.keras.layers.Convolution2D(32, (2, 2), activation='relu', input_shape=(28, 28,1)),
    tf.keras.layers.MaxPool2D(pool_size=2),
    tf.keras.layers.Flatten(),
    tf.keras.layers.Dense(128),
    tf.keras.layers.Activation('relu'),
    tf.keras.layers.Dropout(0.5),
     tf.keras.layers.Dense(10, activation='softmax')
])

tbCallback = [
    k.callbacks.TensorBoard(
        log_dir="D:/TensorBoard", histogram_freq=1, write_graph=True, write_images=True
    )
]


model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
model.fit(train_dataset, epochs = 10, steps_per_epoch = 30,validation_data=test_dataset,validation_steps=1, callbacks=tbCallback)

这使用了TensorFlow 1.11.0和Keras,旨在展示如何使用该批次。你必须使它适应你的需要

import tensorflow as tf
from tensorflow import keras as k


(x_train, y_train), (X_test, Y_test) = tf.keras.datasets.mnist.load_data()
X_train = x_train.reshape(x_train.shape[0], 28, 28,1)
y_train = tf.keras.utils.to_categorical(y_train,10)
X_test = X_test.reshape(X_test.shape[0], 28, 28,1)
Y_test = tf.keras.utils.to_categorical(Y_test,10)


train_dataset = tf.data.Dataset.from_tensor_slices((X_train, y_train))
train_dataset = train_dataset.batch(32)

test_dataset = tf.data.Dataset.from_tensor_slices((X_test, Y_test))
test_dataset = test_dataset.batch(32)


model = tf.keras.models.Sequential([
    tf.keras.layers.Convolution2D(32, (2, 2), activation='relu', input_shape=(28, 28,1)),
    tf.keras.layers.MaxPool2D(pool_size=2),
    tf.keras.layers.Flatten(),
    tf.keras.layers.Dense(128),
    tf.keras.layers.Activation('relu'),
    tf.keras.layers.Dropout(0.5),
     tf.keras.layers.Dense(10, activation='softmax')
])

tbCallback = [
    k.callbacks.TensorBoard(
        log_dir="D:/TensorBoard", histogram_freq=1, write_graph=True, write_images=True
    )
]


model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
model.fit(train_dataset, epochs = 10, steps_per_epoch = 30,validation_data=test_dataset,validation_steps=1, callbacks=tbCallback)
您可以使用tf.keras.datasets.mnist.load\u数据。它返回Numpy数组的元组:x_列,y_列,x_测试,y_测试

之后,您需要使用dataset API创建dataset对象。这将创建培训数据集。可以以相同的方式创建测试数据集

train, test = tf.keras.datasets.mnist.load_data()
dataset = tf.data.Dataset.from_tensor_slices((train[0], train[1]))
然后,要创建批处理,需要对其应用批处理函数

dataset = dataset.batch(1)
要输出它的内容或在培训中使用它,您需要创建迭代器。下面的代码创建最常见的迭代器,并在本例1中输出batch_大小的元素

iterator = dataset.make_one_shot_iterator()
with tf.Session() as sess:
    print(sess.run(iterator.get_next())
请阅读

您可以使用tf.keras.datasets.mnist.load\u数据。它返回Numpy数组的元组:x_列,y_列,x_测试,y_测试

之后,您需要使用dataset API创建dataset对象。这将创建培训数据集。可以以相同的方式创建测试数据集

train, test = tf.keras.datasets.mnist.load_data()
dataset = tf.data.Dataset.from_tensor_slices((train[0], train[1]))
然后,要创建批处理,需要对其应用批处理函数

dataset = dataset.batch(1)
要输出它的内容或在培训中使用它,您需要创建迭代器。下面的代码创建最常见的迭代器,并在本例1中输出batch_大小的元素

iterator = dataset.make_one_shot_iterator()
with tf.Session() as sess:
    print(sess.run(iterator.get_next())

请阅读

您想从MNIST数据集中获取批次吗?@Shubham Panchal,是的,我正在尝试获取批次x和批次y。请正确格式化您的代码。您想从MNIST数据集中获取批次吗?@Shubham Panchal,是的,我正在尝试获取批次x和批次y。请正确格式化您的代码。谢谢Mohan,我试着把我的keras换成一个旧版本。而且它有效!非常感谢你!谢谢你Mohan,我试着把我的keras换成一个旧版本。而且它有效!非常感谢你!谢谢你,沙基!这对我来说很有意义!我还尝试将我的keras版本降级到1.12.0或更低,而且它也能工作!真的很感激!谢谢你,沙基!这对我来说很有意义!我还尝试将我的keras版本降级到1.12.0或更低,而且它也能工作!真的很感激!