吴裕雄--天生自然 pythonTensorFlow图形数据处理:数据集高层操作
- import tempfile
- import tensorflow as tf
- # 1. 列举输入文件。
- # 输入数据生成的训练和测试数据。
- train_files = tf.train.match_filenames_once("F:\\output.tfrecords")
- test_files = tf.train.match_filenames_once("F:\\output_test.tfrecords")
- # 定义解析TFRecord文件的parser方法。
- # 解析一个TFRecord的方法。
- def parser(record):
- features = tf.parse_single_example(record,features={'image_raw':tf.FixedLenFeature([],tf.string),'pixels':tf.FixedLenFeature([],tf.int64),'label':tf.FixedLenFeature([],tf.int64)})
- decoded_images = tf.decode_raw(features['image_raw'],tf.uint8)
- retyped_images = tf.cast(decoded_images, tf.float32)
- images = tf.reshape(retyped_images, [784])
- labels = tf.cast(features['label'],tf.int32)
- #pixels = tf.cast(features['pixels'],tf.int32)
- return images, labels
- # 定义训练数据集。
- image_size = 299 # 定义神经网络输入层图片的大小。
- batch_size = 100 # 定义组合数据batch的大小。
- shuffle_buffer = 10000 # 定义随机打乱数据时buffer的大小。
- # 定义读取训练数据的数据集。
- dataset = tf.data.TFRecordDataset(train_files)
- dataset = dataset.map(parser)
- # 对数据进行shuffle和batching操作。这里省略了对图像做随机调整的预处理步骤。
- dataset = dataset.shuffle(shuffle_buffer).batch(batch_size)
- # 重复NUM_EPOCHS个epoch。
- NUM_EPOCHS = 10
- dataset = dataset.repeat(NUM_EPOCHS)
- # 定义数据集迭代器。
- iterator = dataset.make_initializable_iterator()
- image_batch, label_batch = iterator.get_next()
- # 定义神经网络结构和优化过程。
- # 定义神经网络的结构以及优化过程。这里与7.3.4小节相同。
- def inference(input_tensor, weights1, biases1, weights2, biases2):
- layer1 = tf.nn.relu(tf.matmul(input_tensor, weights1) + biases1)
- return tf.matmul(layer1, weights2) + biases2
- INPUT_NODE = 784
- OUTPUT_NODE = 10
- LAYER1_NODE = 500
- REGULARAZTION_RATE = 0.0001
- TRAINING_STEPS = 5000
- weights1 = tf.Variable(tf.truncated_normal([INPUT_NODE, LAYER1_NODE], stddev=0.1))
- biases1 = tf.Variable(tf.constant(0.1, shape=[LAYER1_NODE]))
- weights2 = tf.Variable(tf.truncated_normal([LAYER1_NODE, OUTPUT_NODE], stddev=0.1))
- biases2 = tf.Variable(tf.constant(0.1, shape=[OUTPUT_NODE]))
- y = inference(image_batch, weights1, biases1, weights2, biases2)
- # 计算交叉熵及其平均值
- cross_entropy = tf.nn.sparse_softmax_cross_entropy_with_logits(logits=y, labels=label_batch)
- cross_entropy_mean = tf.reduce_mean(cross_entropy)
- # 损失函数的计算
- regularizer = tf.contrib.layers.l2_regularizer(REGULARAZTION_RATE)
- regularaztion = regularizer(weights1) + regularizer(weights2)
- loss = cross_entropy_mean + regularaztion
- # 优化损失函数
- train_step = tf.train.GradientDescentOptimizer(0.01).minimize(loss)
- # 定义测试用数据集。
- # 定义测试用的Dataset。
- test_dataset = tf.data.TFRecordDataset(test_files)
- test_dataset = test_dataset.map(parser)
- test_dataset = test_dataset.batch(batch_size)
- # 定义测试数据上的迭代器。
- test_iterator = test_dataset.make_initializable_iterator()
- test_image_batch, test_label_batch = test_iterator.get_next()
- # 定义测试数据上的预测结果。
- test_logit = inference(test_image_batch, weights1, biases1, weights2, biases2)
- predictions = tf.argmax(test_logit, axis=-1, output_type=tf.int32)
- # 声明会话并运行神经网络的优化过程。
- with tf.Session() as sess:
- # 初始化变量。
- sess.run((tf.global_variables_initializer(),tf.local_variables_initializer()))
- # 初始化训练数据的迭代器。
- sess.run(iterator.initializer)
- # 循环进行训练,直到数据集完成输入、抛出OutOfRangeError错误。
- while True:
- try:
- sess.run(train_step)
- except tf.errors.OutOfRangeError:
- break
- test_results = []
- test_labels = []
- # 初始化测试数据的迭代器。
- sess.run(test_iterator.initializer)
- # 获取预测结果。
- while True:
- try:
- pred, label = sess.run([predictions, test_label_batch])
- test_results.extend(pred)
- test_labels.extend(label)
- except tf.errors.OutOfRangeError:
- break
- # 计算准确率
- correct = [float(y == y_) for (y, y_) in zip (test_results, test_labels)]
- accuracy = sum(correct) / len(correct)
- print("Test accuracy is:", accuracy)
吴裕雄--天生自然 pythonTensorFlow图形数据处理:数据集高层操作的更多相关文章
- 吴裕雄--天生自然 pythonTensorFlow图形数据处理:队列操作
import tensorflow as tf #1. 创建队列,并操作里面的元素. q = tf.FIFOQueue(2, "int32") init = q.enqueue_m ...
- 吴裕雄--天生自然 pythonTensorFlow图形数据处理:windows操作系统安装指定版本的tensorflow
pip install tensorflow==1.14.0
- 吴裕雄--天生自然 pythonTensorFlow图形数据处理:数据集基本使用方法
import tempfile import tensorflow as tf # 1. 从数组创建数据集. input_data = [1, 2, 3, 5, 8] dataset = tf.dat ...
- 吴裕雄--天生自然 pythonTensorFlow图形数据处理:循环神经网络预测正弦函数
import numpy as np import tensorflow as tf import matplotlib.pyplot as plt # 定义RNN的参数. HIDDEN_SIZE = ...
- 吴裕雄--天生自然 pythonTensorFlow图形数据处理:输入数据处理框架
import tensorflow as tf # 1. 创建文件列表,通过文件列表创建输入文件队列 files = tf.train.match_filenames_once("F:\\o ...
- 吴裕雄--天生自然 pythonTensorFlow图形数据处理:输入文件队列
import tensorflow as tf # 1. 生成文件存储样例数据. def _int64_feature(value): return tf.train.Feature(int64_li ...
- 吴裕雄--天生自然 pythonTensorFlow图形数据处理:多线程队列操作
import tensorflow as tf #1. 定义队列及其操作. queue = tf.FIFOQueue(100,"float") enqueue_op = queue ...
- 吴裕雄--天生自然 pythonTensorFlow图形数据处理:图像预处理完整样例
import numpy as np import tensorflow as tf import matplotlib.pyplot as plt #随机调整图片的色彩,定义两种顺序. def di ...
- 吴裕雄--天生自然 pythonTensorFlow图形数据处理:TensorFlow图像处理函数
import numpy as np import tensorflow as tf import matplotlib.pyplot as plt #读取图片 image_raw_data = tf ...
随机推荐
- TX2_安装view_team
TX2上的帐号是:1317149963,dc200820305233 参考网站:https://blog.csdn.net/qq_33512213/article/details/90050792 安 ...
- 使用模拟器调试react-native步骤(安卓机)
1.在cmd界面搭建react-native 环境: 可参考https://reactnative.cn/docs/0.51/getting-started.html#content (1)npm i ...
- SFINAE 与 type_traits
SFINAE 与 type_traits SFINAE 替换失败不是错误 (Substitution Failure Is Not An Error),此特性被用于模板元编程. 在函数模板的重载决议中 ...
- LIS是什么?
在之前的随笔中,大概介绍了医疗系统有哪些,是干什么的,是怎么配合医院业务的.现在就开始主要的说一说我的主要工作业务 — LIS了. 前面说到过LIS(LIMS),名称是实验室信息管理系统,大概可以分解 ...
- kettle 数据库连接失败
kettle 数据库连接失败 测试连接提示缺少驱动. 提示错误信息:Driver class 'oracle.jdbc.driver.OracleDriver' could not be found, ...
- 2020/2/12 PHP编程学习
感冒终于差不多好了.. 学了一天的tp框架商城开发,到此,一个小商城算是开发完了,写一个简单小总结吧233 首先说的编程方面,其实并没有质的提升orz,怎么可能几天就有大突破233 不过收获还是有的, ...
- 【Linux】Linux中的网络命令
dig命令:是常用的域名查询工具,可以用来测试域名系统工作是否正常. 语法: dig(选项)(参数) [root@localhost tmp]# dig http://oa.kingnet.com ; ...
- Linux基础应用
Linux刚面世时并没有图形界面,因此所有的操作全靠命令完成,如磁盘操作.文件读取.目录操作.进程管理.文件权限等都要通过命令完成.且在职场中,大量的服务器维护都是通过远程命令来完成. 常用的7个命令 ...
- (day 1)创建项目--3【创建应用】
创建步骤 1.打开命令行,进入项目中manage.py的同级目录 2.在命令行输入 python manage.py startapp blog 3.添加应用名到settings.py的INSTALL ...
- 第一个eclipse maven项目!我超全!
前言:以前一直用idea做东西,今天突然想试一下,没想到配置起来是真的麻烦!!!!会出现各种各样的问题,太晚了,本文只做出几处非常严重的问题,如有疑问,请私信,留言 准备:本文 JDK 1.8 ...