当前位置: 首页 > news >正文

Python TensorFlow 2.6 获取 MNIST 数据

Python TensorFlow 2.6 获取 MNIST 数据

  • 2 Python TensorFlow 2.6 获取 MNIST 数据
    • 1.1 获取 MNIST 数据
    • 1.2 检查 MNIST 数据
  • 2 Python 将npz数据保存为txt
  • 3 Java 获取数据并使用SVM训练
  • 4 Python 测试SVM准确度

2 Python TensorFlow 2.6 获取 MNIST 数据

1.1 获取 MNIST 数据

获取 MNIST 数据

import numpy as np
import tensorflow as tffrom tensorflow.keras import datasetsprint(tf.__version__)(train_data, train_label), (test_data, test_label) = datasets.mnist.load_data()
np.savez('D:\\OneDrive\\桌面\\mnist.npz', train_data = train_data, train_label = train_label, test_data = test_data,test_label = test_label)
C:\ProgramData\Anaconda3\envs\tensorflow\python.exe E:/SourceCode/PyCharm/Test/study/exam.py
2.6.0Process finished with exit code 0

1.2 检查 MNIST 数据

import matplotlib.pyplot as plt
import numpy as npdata = np.load('D:\\OneDrive\\桌面\\mnist.npz')
print(data.files)image = data['train_data'][0:100]
label = data['train_label'].reshape(-1, )
print(label)
plt.figure(figsize = (10, 10))
for i in range(100):print('%f, %f' % (i, label[i]))plt.subplot(10, 10, i + 1)plt.imshow(image[i])
plt.show()

在这里插入图片描述

2 Python 将npz数据保存为txt

import numpy as np# 加载mnist数据
data = np.load('D:\\学习\\mnist.npz')
# 获取 训练数据
train_image = data['x_test']
train_label = data['y_test']
train_image = train_image.reshape(train_image.shape[0], -1)
train_image = train_image.astype(np.int32)
train_label = train_label.astype(np.int32)
train_label = train_label.reshape(-1, 1)
index = 0
file = open('D:\\OneDrive\\桌面\\predict.txt', 'w+')
for arr in train_image:file.write('{0}->{1}\n'.format(train_label[index][0], ','.join(str(i) for i in arr)))index = index + 1
file.close()

在这里插入图片描述

3 Java 获取数据并使用SVM训练

package com.xu.opencv;import java.io.BufferedReader;
import java.io.FileReader;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;import org.opencv.core.Core;
import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.opencv.core.TermCriteria;
import org.opencv.ml.Ml;
import org.opencv.ml.SVM;/*** @author Administrator*/
public class Train {static {System.loadLibrary(Core.NATIVE_LIBRARY_NAME);}public static void main(String[] args) throws Exception {predict();}public static void predict() throws Exception {SVM svm = SVM.load("D:\\OneDrive\\桌面\\ai.xml");BufferedReader reader = new BufferedReader(new FileReader("D:\\OneDrive\\桌面\\predict.txt"));Mat train = new Mat(6, 28 * 28, CvType.CV_32FC1);Mat label = new Mat(1, 6, CvType.CV_32SC1);Map<String, Mat> map = new HashMap<>(2);int index = 0;String line = null;while ((line = reader.readLine()) != null) {int[] data = Arrays.asList(line.split("->")[1].split(",")).stream().mapToInt(Integer::parseInt).toArray();for (int i = 0; i < 28 * 28; i++) {train.put(index, i, data[i]);}label.put(index, 0, Integer.parseInt(line.split("->")[0]));index++;if (index >= 6) {break;}}Mat response = new Mat();svm.predict(train, response);for (int i = 0; i < response.height(); i++) {System.out.println(response.get(i, 0)[0]);}}public static void train() throws Exception {SVM svm = SVM.create();svm.setC(1);svm.setP(0);svm.setNu(0);svm.setCoef0(0);svm.setGamma(1);svm.setDegree(0);svm.setType(SVM.C_SVC);svm.setKernel(SVM.LINEAR);svm.setTermCriteria(new TermCriteria(TermCriteria.EPS + TermCriteria.MAX_ITER, 1000, 0));Map<String, Mat> map = read("D:\\OneDrive\\桌面\\data.txt");svm.train(map.get("train"), Ml.ROW_SAMPLE, map.get("label"));svm.save("D:\\OneDrive\\桌面\\ai.xml");}public static Map<String, Mat> read(String path) throws Exception {BufferedReader reader = new BufferedReader(new FileReader(path));String line = null;Mat train = new Mat(60000, 28 * 28, CvType.CV_32FC1);Mat label = new Mat(1, 60000, CvType.CV_32SC1);Map<String, Mat> map = new HashMap<>(2);int index = 0;while ((line = reader.readLine()) != null) {int[] data = Arrays.asList(line.split("->")[1].split(",")).stream().mapToInt(Integer::parseInt).toArray();for (int i = 0; i < 28 * 28; i++) {train.put(index, i, data[i]);}label.put(index, 0, Integer.parseInt(line.split("->")[0]));index++;}map.put("train", train);map.put("label", label);reader.close();return map;}}

4 Python 测试SVM准确度

9.8% 求帮助

import cv2 as cv
import numpy as np# 加载预测数据
data = np.load('D:\\学习\\mnist.npz')
print(data.files)# 预测数据 处理
test_image = data['x_test']
test_label = data['y_test']test_image = test_image.reshape(test_image.shape[0], -1)
test_image = test_image.astype(np.float32)
test_label = test_label.astype(np.float32)
test_label = test_label.reshape(-1, 1)svm = cv.ml.SVM_load('D:\\OneDrive\\桌面\\ai.xml')predict = svm.predict(test_image)
predict = predict[1].reshape(-1, 1).astype(np.int32)
result = (predict == test_label.astype(np.int32))
print('{0}%'.format(str(result.mean() * 100)))
C:\ProgramData\Anaconda3\envs\opencv\python.exe E:/SourceCode/PyCharm/OpenCV/svm/predict.py
['x_train', 'y_train', 'x_test', 'y_test']
9.8%Process finished with exit code 0
http://www.lryc.cn/news/333177.html

相关文章:

  • EChart简单入门
  • 阿里云8核32G云服务器租用优惠价格表,包括腾讯云和京东云
  • 设计模式,工厂方法模式
  • WPF中嵌入3D模型通用结构
  • 举个例子说明联邦学习
  • 【Python】免费的图片/图标网站
  • Pytorch中的nn.Embedding()
  • WebSocketServer后端配置,精简版
  • Python程序设计 多重循环(二)
  • 前端面试题--CSS系列(一)
  • VSCode好用插件
  • Vue3:对ref、reactive的一个性能优化API
  • Python 用pygame简简单单实现一个打砖块
  • 软考113-上午题-【计算机网络】-IPv6、无线网络、Windows命令
  • 深入浅出 -- 系统架构之负载均衡Nginx资源压缩
  • 基于jsp+Spring boot+mybatis的图书管理系统设计和实现
  • Pytorch转onnx
  • 苍穹外卖——项目搭建
  • 云原生架构(微服务、容器云、DevOps、不可变基础设施、声明式API、Serverless、Service Mesh)
  • 基于重写ribbon负载实现灰度发布
  • 无端科技一面(生死狙击项目组 战斗客户端 40min)
  • idea开发 java web 高校学籍管理系统bootstrap框架web结构java编程计算机网页
  • linux之文件系统、inode和动静态库制作和发布
  • C++IO类,输入输出缓冲区,流状态
  • 机器学习笔记 - 文字转语音技术路线简述以及相关工具不完全清单
  • 阿里云4核8G服务器ECS通用算力型u1实例优惠价格
  • Jetson nano部署Yolov8 安装Archiconda3+创建pytorch环境(详细教程+错误解决)
  • Node.JS多线程PromisePool之promise-pool库实现
  • 【C++】红黑树讲解及实现
  • security如何不拦截websocket