用tensorflow读取 MNIST 数据集

时间: 2023-09-19 08:10:50 浏览: 22
在 TensorFlow 中,可以使用 `tf.keras.datasets` 模块来读取 MNIST 数据集。以下是一个读取 MNIST 数据集的示例: ```python import tensorflow as tf # 使用 tf.keras.datasets 中的 load_data 函数读取 MNIST 数据集 (x_train, y_train), (x_test, y_test) = tf.keras.datasets.mnist.load_data() # 对数据进行预处理 x_train = x_train / 255.0 x_test = x_test / 255.0 # 将数据转换为张量 x_train = tf.convert_to_tensor(x_train, dtype=tf.float32) y_train = tf.convert_to_tensor(y_train, dtype=tf.int32) x_test = tf.convert_to_tensor(x_test, dtype=tf.float32) y_test = tf.convert_to_tensor(y_test, dtype=tf.int32) # 创建数据集 train_dataset = tf.data.Dataset.from_tensor_slices((x_train, y_train)) test_dataset = tf.data.Dataset.from_tensor_slices((x_test, y_test)) # 打乱数据并分成 batch train_dataset = train_dataset.shuffle(buffer_size=10000) train_dataset = train_dataset.batch(32) test_dataset = test_dataset.batch(32) # 迭代数据 for x, y in train_dataset: # 训练模型 pass ``` 这个例子中,我们使用 `tf.keras.datasets.mnist.load_data` 函数来读取 MNIST 数据集,并将数据集拆分为训练集和测试集。然后,我们对数据进行预处理,将像素值缩放到 0 到 1 之间。 接着,我们将数据转换为 TensorFlow 张量,并使用 `tf.data.Dataset.from_tensor_slices` 函数将数据集转换为 TensorFlow 数据集。最后,我们使用 `shuffle` 和 `batch` 函数对数据进行随机打乱和分批次。 最后,我们可以在模型训练时使用 `for` 循环迭代数据集中的每一个批次,并对模型进行训练。

相关推荐

### 回答1: TensorFlow可以通过以下代码读取MNIST数据集: python import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data # 读取MNIST数据集 mnist = input_data.read_data_sets("MNIST_data/", one_hot=True) # 打印训练集、验证集和测试集的大小 print("训练集大小:", mnist.train.num_examples) print("验证集大小:", mnist.validation.num_examples) print("测试集大小:", mnist.test.num_examples) # 打印训练集中第一个样本的标签和像素值 print("训练集第一个样本的标签:", mnist.train.labels[0]) print("训练集第一个样本的像素值:", mnist.train.images[0]) 其中,input_data.read_data_sets()函数会自动下载MNIST数据集并将其存储在指定的文件夹中。one_hot=True表示将标签转换为one-hot编码。训练集、验证集和测试集分别存储在mnist.train、mnist.validation和mnist.test中。每个样本的标签存储在labels中,像素值存储在images中。 ### 回答2: TensorFlow是一个用于构建和训练机器学习模型的强大框架。在机器学习中,MNIST数据集是一个广泛使用的手写数字识别任务。TensorFlow提供了一个方便的API,可以用于读取MNIST数据集。 首先,要使用MNIST数据集,需要从TensorFlow的datasets模块中导入它: python from tensorflow.keras.datasets import mnist 然后,我们可以使用load_data()方法来下载并读取MNIST数据集: python (x_train, y_train), (x_test, y_test) = mnist.load_data() 上述代码将会下载MNIST数据集,分别读取训练和测试数据,将其分别存储在x_train、y_train、x_test和y_test四个变量中。 其中,x_train和x_test变量包含手写数字图像的像素值,每个图像由28x28个像素组成。y_train和y_test变量则包含相应图像的标签,即手写数字的真实值。 在读取MNIST数据集后,我们可以使用matplotlib等图形库来显示和可视化数据集。 例如,可以使用下面的代码显示MNIST数据集中的第一个训练样本: python import matplotlib.pyplot as plt plt.imshow(x_train[0], cmap='gray') plt.show() 除了使用预先定义的MNIST数据集,TensorFlow还提供了灵活的API,可以读取自定义的数据集。可以使用tf.data工具包或者直接从存储在磁盘上的文件中读取数据。 总之,TensorFlow提供了非常简单和灵活的API,可以方便地读取MNIST数据集。这使得开发者可以专注于模型的构建和训练,而不必花费太多时间和精力处理数据读取的问题。 ### 回答3: TensorFlow是一种非常强大的机器学习框架,它可以方便地实现各种模型,包括深度神经网络。MNIST是一个手写数字的数据集,它由6万张图片组成,其中5万张是训练集,1万张是测试集。在TensorFlow中,读取MNIST数据集非常简单,只需按照以下步骤操作即可。 首先,我们需要导入必要的库,包括TensorFlow本身和numpy。Numpy是Python中的一个常用数学库,可以方便地处理数组和矩阵。 python import tensorflow as tf import numpy as np 接下来,我们可以从TensorFlow内置的数据集中加载MNIST数据集。TensorFlow提供了一个方便的API来自动下载和管理MNIST数据集,我们只需调用一行代码即可。 python mnist = tf.keras.datasets.mnist 接下来,我们可以将训练集和测试集分别加载到内存中,使用load_data()方法即可。此时,训练集和测试集将被存储为numpy数组。 python (train_images, train_labels), (test_images, test_labels) = mnist.load_data() 最后,我们需要将数据集转换为TensorFlow中的张量。由于MNIST数据集是28x28的灰度图像,每个像素的灰度值介于0和255之间,我们需要进行一些数据预处理才能将其作为输入传递给神经网络模型。 python # 将图片灰度值缩小为0到1之间,并将其转换为浮点张量 train_images = train_images / 255.0 test_images = test_images / 255.0 # 添加一个维度作为通道维,使每个图像的形状为(28, 28, 1) train_images = np.expand_dims(train_images, axis=-1) test_images = np.expand_dims(test_images, axis=-1) # 将标签转换为独热编码 train_labels = tf.keras.utils.to_categorical(train_labels, num_classes=10) test_labels = tf.keras.utils.to_categorical(test_labels, num_classes=10) # 将numpy数组转换为TensorFlow张量 train_dataset = tf.data.Dataset.from_tensor_slices((train_images, train_labels)) test_dataset = tf.data.Dataset.from_tensor_slices((test_images, test_labels)) 现在,我们已经成功地将MNIST数据集加载到了TensorFlow中,并将其转换为可以用于训练和测试模型的张量。我们可以像任何其他TensorFlow数据集一样使用这些数据集,如构建迭代器或批处理数据。
### 回答1: 可以使用以下代码引用MNIST数据集: from keras.datasets import mnist # 加载训练集和测试集 (train_images, train_labels), (test_images, test_labels) = mnist.load_data() 该代码使用Keras库中的mnist模块加载MNIST数据集。训练集和测试集通过元组返回给两个变量。其中,train_images和train_labels是用于训练的图像和标签数据,test_images和test_labels是用于测试的图像和标签数据。 ### 回答2: 要在Python中引用MNIST数据集,可以使用以下步骤: 1. 首先,从网站上下载MNIST数据集的四个文件:Training Images、Training Labels、Testing Images和Testing Labels。可以在官方网站上找到这些文件。将这些文件保存到你的计算机上的一个文件夹中。 2. 在Python中,我们可以使用第三方库来加载和处理MNIST数据集。一个常用的库是TensorFlow,可使用以下命令安装它: pip install tensorflow 3. 导入TensorFlow库: import tensorflow as tf 4: 设置数据集路径: train_images_path = "路径/训练图像文件" train_labels_path = "路径/训练标签文件" test_images_path = "路径/测试图像文件" test_labels_path = "路径/测试标签文件" 5. 使用TensorFlow的API加载MNIST数据集: (train_images, train_labels), (test_images, test_labels) = tf.keras.datasets.mnist.load_data(path=train_images_path, train_labels_path=train_labels_path, test_images_path=test_images_path, test_labels_path=test_labels_path) 6. 现在,MNIST数据集已经被加载到train_images、train_labels、test_images和test_labels变量中。可以通过打印这些变量来查看其内容: print(train_images.shape) # 打印训练图像的形状 print(train_labels.shape) # 打印训练标签的形状 print(test_images.shape) # 打印测试图像的形状 print(test_labels.shape) # 打印测试标签的形状 注意:上述代码中的路径应替换为实际存储MNIST数据集文件的路径。 这样,你就成功加载了MNIST数集,并可以在Python中使用它了。 ### 回答3: 要在Python中引用MNIST数据集,可以使用以下步骤: 1. 首先,确保安装了所需的库。我们需要安装tensorflow库,因为tensorflow库中包含了MNIST数据集的函数。 2. 导入所需的库: python import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data 3. 使用input_data.read_data_sets()函数来下载和读取MNIST数据集。该函数将返回一个对象,包含MNIST数据集的训练集、验证集和测试集: python mnist = input_data.read_data_sets("MNIST_data/", one_hot=True) 4. 使用mnist.train、mnist.validation和mnist.test对象来访问相应的数据集。例如,mnist.train.images将返回训练集的图像数据,mnist.train.labels将返回训练集的标签数据。 以下是一个示例代码: python import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data # 下载和读取MNIST数据集 mnist = input_data.read_data_sets("MNIST_data/", one_hot=True) # 获取训练集的图像和标签数据 train_images = mnist.train.images train_labels = mnist.train.labels # 获取验证集的图像和标签数据 validation_images = mnist.validation.images validation_labels = mnist.validation.labels # 获取测试集的图像和标签数据 test_images = mnist.test.images test_labels = mnist.test.labels # 输出训练集的图像和标签数据的形状 print("训练集图像数据的形状:", train_images.shape) print("训练集标签数据的形状:", train_labels.shape) 这样,你就可以通过Python引用MNIST数据集了。
MLP-MNIST是指使用多层感知机(Multilayer Perceptron,简称MLP)模型对MNIST数据集进行分类的任务。MNIST数据集是一个常用于机器学习领域的手写数字识别数据集。它包含了60,000个训练样本和10,000个测试样本,每个样本都是一个28x28的灰度图像,图像上的数字标签表示该图像对应的数字。 MLP是一种经典的前馈神经网络模型,它由多个全连接层组成,每个层都包含了多个神经元。该模型可以通过学习来建立输入图像与对应数字之间的映射关系,从而实现对手写数字的分类任务。 要进行MLP-MNIST数据集的分类任务,可以按照以下步骤进行: 1. 读取数据集:首先,需要将MNIST数据集加载到程序中,可以使用适当的数据读取函数,如TensorFlow中的tf.keras.datasets模块中的load_data()函数。 2. 数据预处理:对于MLP模型,通常需要将图像数据进行平铺(flatten)操作,将二维的图像数据转换为一维的向量作为模型的输入。同时,还需要对图像数据进行归一化处理,将像素值缩放到0到1之间。 3. 初始化模型参数:根据需要选择合适的MLP模型结构,并对模型的参数进行初始化,如权重和偏置。 4. 定义激活函数:MLP模型中的每个神经元通常都会使用激活函数对其输出进行非线性变换,常见的激活函数包括ReLU、sigmoid和tanh等。 5. 防止过拟合:在MLP模型中,为了防止过拟合现象的发生,可以采用一些正则化技术,如权重衰减(weight decay)。 6. 训练模型:使用训练集对MLP模型进行训练,通过反向传播算法不断优化模型参数,使其能够更好地拟合训练数据。 7. 模型评估:使用测试集对训练好的模型进行评估,计算分类准确率等指标,以评估模型的性能。 综上所述,MLP-MNIST数据集是指使用多层感知机模型对MNIST数据集进行分类任务的过程。通过适当的数据预处理、模型参数初始化、激活函数定义和防止过拟合等步骤,可以构建出一个能够对手写数字进行准确分类的MLP模型。
MNIST(Modified National Institute of Standards and Technology)是一个手写数字识别的经典数据集,包含60,000个训练样本和10,000个测试样本,每个样本都是一个28x28像素的灰度图像。以下是创建MNIST格式数据集的步骤: 1. 下载MNIST数据集 可以从官网下载MNIST数据集,也可以使用TensorFlow等深度学习框架内置的MNIST数据集。下载后的数据集包含四个文件: - train-images-idx3-ubyte.gz:训练集图像 - train-labels-idx1-ubyte.gz:训练集标签 - t10k-images-idx3-ubyte.gz:测试集图像 - t10k-labels-idx1-ubyte.gz:测试集标签 2. 解压数据集 使用gzip库解压缩数据集文件: python import gzip def extract_data(filename, num_data, data_size, offset): with gzip.open(filename) as f: f.read(offset) buf = f.read(data_size * num_data) data = np.frombuffer(buf, dtype=np.uint8).astype(np.float32) return data.reshape(num_data, data_size) train_images = extract_data('train-images-idx3-ubyte.gz', 60000, 784, 16) train_labels = extract_data('train-labels-idx1-ubyte.gz', 60000, 1, 8) test_images = extract_data('t10k-images-idx3-ubyte.gz', 10000, 784, 16) test_labels = extract_data('t10k-labels-idx1-ubyte.gz', 10000, 1, 8) 3. 将数据集转为TFRecord格式 TFRecord格式是一种二进制格式,可以更高效地存储和读取数据集。可以使用TensorFlow内置的tf.data.Dataset API将数据集转为TFRecord格式: python import tensorflow as tf def write_tfrecord(images, labels, filename): with tf.io.TFRecordWriter(filename) as writer: for i in range(images.shape[0]): image_raw = images[i].tostring() example = tf.train.Example(features=tf.train.Features(feature={ 'image': tf.train.Feature(bytes_list=tf.train.BytesList(value=[image_raw])), 'label': tf.train.Feature(int64_list=tf.train.Int64List(value=[labels[i]])) })) writer.write(example.SerializeToString()) write_tfrecord(train_images, train_labels, 'train.tfrecord') write_tfrecord(test_images, test_labels, 'test.tfrecord') 4. 读取TFRecord格式数据集 可以使用TensorFlow内置的tf.data.Dataset API读取TFRecord格式数据集: python def read_tfrecord(filename): feature_description = { 'image': tf.io.FixedLenFeature([], tf.string), 'label': tf.io.FixedLenFeature([], tf.int64) } def _parse_example(example_string): feature_dict = tf.io.parse_single_example(example_string, feature_description) image = tf.io.decode_raw(feature_dict['image'], tf.uint8) image = tf.cast(image, tf.float32) / 255.0 image = tf.reshape(image, [28, 28, 1]) label = tf.cast(feature_dict['label'], tf.int32) return image, label dataset = tf.data.TFRecordDataset(filename) dataset = dataset.map(_parse_example) return dataset train_dataset = read_tfrecord('train.tfrecord') test_dataset = read_tfrecord('test.tfrecord')
### 回答1: 下面是一个基于TensorFlow的CNN实现MNIST数据集识别的例子,包括训练和测试代码: python import tensorflow as tf # 加载MNIST数据集 (x_train, y_train), (x_test, y_test) = tf.keras.datasets.mnist.load_data() # 归一化数据 x_train = x_train / 255.0 x_test = x_test / 255.0 # 建立CNN模型 model = tf.keras.Sequential() model.add(tf.keras.layers.Reshape((28, 28, 1), input_shape=(28, 28))) model.add(tf.keras.layers.Conv2D(32, (3, 3), activation='relu')) model.add(tf.keras.layers.MaxPooling2D((2, 2))) model.add(tf.keras.layers.Conv2D(64, (3, 3), activation='relu')) model.add(tf.keras.layers.MaxPooling2D((2, 2))) model.add(tf.keras.layers.Flatten()) model.add(tf.keras.layers.Dense(64, activation='relu')) model.add(tf.keras.layers.Dense(10, activation='softmax')) # 编译模型 model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy']) # 训练模型 model.fit(x_train, y_train, epochs=5) # 评估模型 model.evaluate(x_test, y_test, verbose=2) # 使用自选图片进行预测 from PIL import Image import numpy as np # 读取图片并将其转换为28x28灰度图 im = Image.open('my_image.jpg').convert('L') im = im.resize((28, 28)) # 将图片转换为numpy数组 im_array = np.array(im) # 将图片数组输入模型进行预测 prediction = model.predict(im_array[np.newaxis, :, :, np.newaxis]) # 打印预测结果 print(prediction) 希望这个例子能帮到 ### 回答2: 要实现CNN(卷积神经网络)来对MNIST(手写数字)数据集进行识别,可以使用一种流行的深度学习库,如TensorFlow。以下是一个基本的代码示例,其中CNN模型根据训练好的权重进行预测,并且具有用户可以自选的图片识别功能。 python # 导入所需库 import tensorflow as tf from PIL import Image # 加载MNIST数据集 mnist = tf.keras.datasets.mnist (_, _), (x_test, y_test) = mnist.load_data() # 加载训练好的CNN模型和权重 model = tf.keras.models.load_model('mnist_cnn_model.h5') # 自定义函数:识别用户自选的图片 def predict_custom_image(image_path): # 打开用户自选的图片 img = Image.open(image_path).convert('L') # 调整图像大小为MNIST数据集的大小(28x28像素) img = img.resize((28, 28)) # 数据预处理:缩放图像像素值(0-255)至0-1之间 img = tf.keras.preprocessing.image.img_to_array(img) img /= 255.0 # 进行预测 prediction = model.predict(img.reshape(1, 28, 28, 1)) predicted_label = tf.argmax(prediction[0]).numpy() # 输出预测结果 print('预测结果:', predicted_label) # 调用自定义函数并识别用户自选的图片 predict_custom_image('custom_image.png') 在上述代码中,我们首先导入所需的库,然后加载MNIST数据集,并加载经过训练好的CNN模型和权重。之后,我们定义了一个自定义函数predict_custom_image,该函数接受一个图片路径作为输入,并进行相应的图像预处理和预测。最后,我们调用该函数并传递用户自选的图片路径。 需要注意的是,在运行此代码之前,确保已经在同一目录下存在名为mnist_cnn_model.h5的模型文件,该文件包含了经过训练好的CNN模型的权重。此外,用户自选的图片应答为28x28像素大小并存储为custom_image.png(或更改相应路径)。 这样,我们就可以使用CNN实现对MNIST数据集的识别,并且还可以自选图片进行识别。 ### 回答3: 要使用CNN实现MNIST数据集的识别,我们需要以下步骤。 首先,我们需要导入必要的库,如TensorFlow和Keras,并下载MNIST数据集。 python import tensorflow as tf from tensorflow import keras (x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_data() 接下来,我们需要对数据进行预处理,包括将图像数据转换为浮点数,并将标签进行独热编码。 python x_train = x_train.astype('float32') / 255 x_test = x_test.astype('float32') / 255 y_train = keras.utils.to_categorical(y_train) y_test = keras.utils.to_categorical(y_test) 然后,我们可以建立CNN模型。在这个例子中,我们可以使用卷积层、池化层、Flatten层和全连接层。 python model = keras.Sequential([ keras.layers.Conv2D(32, kernel_size=(3, 3), activation='relu', input_shape=(28, 28, 1)), keras.layers.MaxPooling2D(pool_size=(2, 2)), keras.layers.Flatten(), keras.layers.Dense(10, activation='softmax') ]) 接下来,我们可以编译和训练模型。 python model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy']) model.fit(x_train, y_train, batch_size=128, epochs=5, validation_split=0.2) 一旦模型训练完成,我们可以使用测试集来评估模型的准确性。 python test_loss, test_acc = model.evaluate(x_test, y_test) print('Test accuracy:', test_acc) 为了能够自选图片进行识别,我们需要将输入的自选图片进行相同的预处理。然后,可以使用训练好的模型进行预测。 python import cv2 # 读取自选图片并预处理 custom_image = cv2.imread('custom_image.png', cv2.IMREAD_GRAYSCALE) custom_image = cv2.resize(custom_image, (28, 28)) custom_image = cv2.bitwise_not(custom_image) custom_image = custom_image.astype('float32') / 255 custom_image = custom_image.reshape(1, 28, 28, 1) # 使用模型预测 prediction = model.predict(custom_image) predicted_class = np.argmax(prediction) print('Predicted class:', predicted_class) 这样就可以使用CNN实现MNIST数据集的识别,并且能够自选图片进行识别了。

最新推荐

HNU程序设计抽象工厂

多态题目

ChatGPT技术在旅游领域中的智能导游和景点介绍应用.docx

ChatGPT技术在旅游领域中的智能导游和景点介绍应用

零售周观点积极关注国内美妆产业链格局或优化黄金珠宝板块中报业绩表现亮眼-22页.pdf.zip

行业报告 文件类型:PDF格式 打开方式:直接解压,无需密码

家电行业周报关注开能健康深度报告-12页.pdf.zip

行业报告 文件类型:PDF格式 打开方式:直接解压,无需密码

学科融合背景下“编程科学”教学活动设计与实践研究.pptx

学科融合背景下“编程科学”教学活动设计与实践研究.pptx

ELECTRA风格跨语言语言模型XLM-E预训练及性能优化

+v:mala2277获取更多论文×XLM-E:通过ELECTRA进行跨语言语言模型预训练ZewenChi,ShaohanHuangg,LiDong,ShumingMaSaksham Singhal,Payal Bajaj,XiaSong,Furu WeiMicrosoft Corporationhttps://github.com/microsoft/unilm摘要在本文中,我们介绍了ELECTRA风格的任务(克拉克等人。,2020b)到跨语言语言模型预训练。具体来说,我们提出了两个预训练任务,即多语言替换标记检测和翻译替换标记检测。此外,我们预训练模型,命名为XLM-E,在多语言和平行语料库。我们的模型在各种跨语言理解任务上的性能优于基线模型,并且计算成本更低。此外,分析表明,XLM-E倾向于获得更好的跨语言迁移性。76.676.476.276.075.875.675.475.275.0XLM-E(125K)加速130倍XLM-R+TLM(1.5M)XLM-R+TLM(1.2M)InfoXLMXLM-R+TLM(0.9M)XLM-E(90K)XLM-AlignXLM-R+TLM(0.6M)XLM-R+TLM(0.3M)XLM-E(45K)XLM-R0 20 40 60 80 100 120触发器(1e20)1介绍使�

docker持续集成的意义

Docker持续集成的意义在于可以通过自动化构建、测试和部署的方式,快速地将应用程序交付到生产环境中。Docker容器可以在任何环境中运行,因此可以确保在开发、测试和生产环境中使用相同的容器镜像,从而避免了由于环境差异导致的问题。此外,Docker还可以帮助开发人员更快地构建和测试应用程序,从而提高了开发效率。最后,Docker还可以帮助运维人员更轻松地管理和部署应用程序,从而降低了维护成本。 举个例子,假设你正在开发一个Web应用程序,并使用Docker进行持续集成。你可以使用Dockerfile定义应用程序的环境,并使用Docker Compose定义应用程序的服务。然后,你可以使用CI

红楼梦解析PPT模板:古典名著的现代解读.pptx

红楼梦解析PPT模板:古典名著的现代解读.pptx

大型语言模型应用于零镜头文本风格转换的方法简介

+v:mala2277获取更多论文一个使用大型语言模型进行任意文本样式转换的方法Emily Reif 1页 达芙妮伊波利托酒店1,2 * 袁安1 克里斯·卡利森-伯奇(Chris Callison-Burch)Jason Wei11Google Research2宾夕法尼亚大学{ereif,annyuan,andycoenen,jasonwei}@google.com{daphnei,ccb}@seas.upenn.edu摘要在本文中,我们利用大型语言模型(LM)进行零镜头文本风格转换。我们提出了一种激励方法,我们称之为增强零激发学习,它将风格迁移框架为句子重写任务,只需要自然语言的指导,而不需要模型微调或目标风格的示例。增强的零触发学习很简单,不仅在标准的风格迁移任务(如情感)上,而且在自然语言转换(如“使这个旋律成为旋律”或“插入隐喻”)上都表现出了1介绍语篇风格转换是指在保持语篇整体语义和结构的前提下,重新编写语篇,使其包含其他或替代的风格元素。虽然�

xpath爬虫亚马逊详情页

以下是使用XPath爬取亚马逊详情页的步骤: 1. 首先,使用requests库获取亚马逊详情页的HTML源代码。 2. 然后,使用lxml库的etree模块解析HTML源代码。 3. 接着,使用XPath表达式提取所需的数据。 4. 最后,将提取的数据保存到本地或者数据库中。 下面是一个简单的示例代码,以提取亚马逊商品名称为例: ```python import requests from lxml import etree # 设置请求头 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x