tensorflow2.0 新特性小练习

基于tf2.0 对Kaggel Google street view characters classify 项目练手, 熟悉一下tf2.0的新特性

下载下来kaggle的数据集如下:

所有训练数据在train文件夹中, labels在trainLabels.cvs文件中, label文件格式如下:

分别每个label对应其图片的名称

首先对数据进行预处理 总共有61个类别从a-z, A-Z, 0-9等,代码如下:

from __future__ import absolute_import, division, print_function, unicode_literals
import numpy as np
import tensorflow as tf
from tensorflow.python import keras
import csv
import pathlib
keras.backend.clear_session()
csv_filepath = ‘E:\\work\\Kaggle\\street-view-getting-started-with-julia\\trainLabels.csv‘
data_root_path = ‘E:\\work\\Kaggle\\street-view-getting-started-with-julia\\train‘
csv_file = csv.reader(open(csv_filepath, ‘r‘))
label_container = []
labels = []
all_image_labels = []
AUTOTUNE = tf.data.experimental.AUTOTUNE

for cnt in csv_file:
    if cnt[1] not in labels:
        labels.append(cnt[1])
    label_container.append(cnt)

labels = labels[1:]
label_container = label_container[1:]
labels = np.sort(labels)
labels_to_index = dict((name, index) for index,name in enumerate(labels))

data_root = pathlib.Path(data_root_path)
all_image_paths = list(data_root.glob(‘*‘))
all_image_paths = [str(path) for path in all_image_paths]

for item in data_root.iterdir():
    # all_img_path.append(item)
    name = item.name[:-4]
    for match in label_container:
        if name == match[0]:           all_image_labels.append(key if value == match[1]                                     for key, value in enumerate(labels_to_index))

生成的all_image_paths 和 all_image_labels分别包含如下:

因为测试集没有label,所以把训练集分三份,并用tf.data.Data去映射数据空间

train_img_path = all_image_paths[:4000]
val_img_path = all_image_paths[4000:5000]
test_img_path = all_image_paths[5000:]

train_img_labels = all_image_labels[:4000]
val_img_labels = all_image_labels[4000:5000]
test_img_labels = all_image_labels[5000:]

raw_train_ds = tf.data.Dataset.from_tensor_slices((train_img_path, train_img_labels))
raw_val_ds = tf.data.Dataset.from_tensor_slices((val_img_path, val_img_labels))
raw_test_ds = tf.data.Dataset.from_tensor_slices((test_img_path, test_img_labels))

Scale 图片,并对其做数据增强,来满足translation invarience

原文地址:https://www.cnblogs.com/ChrisInsistPy/p/10976509.html

时间: 2024-07-30 21:32:36

tensorflow2.0 新特性小练习的相关文章

tensorflow2.0新特性

Tensorflow2.0相比于以往版本,有着极大的区别:最明显的区别可以用三字词来概括:更简单,更易用,更强大. 接下来让我们一起见证下不一样的地方吧! 一.使用tf.data加载数据 使用tf.data创建的输入管道读取训练数据:支持从内存(Numpy)方便地输入数据: 二.使用tf.keras构建,训练和验证模型,或使用Premade来验证模型 可以直接标准的打包模型(逻辑回归,随机森林),也可以直接使用(tf.estimator API) 如果不想从头训练模型,可以使用迁移学习来训练一个

C#6.0新特性

C#6.0新特性怎么用 系列文章 Visual Studio 2015速递(1)——C#6.0新特性怎么用 前文提到过一个神器叫Resharper,功能强大,编码效率和代码质量那是蹭蹭的涨,但是神器的最大问题是太耗费资源了,每次系统提示内存不足的时候,那叫一个纠结啊.因此每次新的VS发布的时候都情不自禁的查看是否增强编辑功能,情不自禁的讨论一番,这次VS2015也不例外. 去年微软放出Roslyn的时候,微软就曾经放出过一个“尝鲜”版的VS编辑增强功能,恰恰就是重构(reflector),话说这

Spark1.0.0新特性

Spark1.0.0 release于2014-05-30日正式公布,标志Spark正式进入1.X的时代.Spark1.0.0带来了各种新的特性,并提供了更好的API支持:Spark1.0.0添加了Spark SQL这一个新的重要组件,用于载入和操作Spark的结构化数据:Spark1.0.0增强了现有的标准库(ML,streaming,GraphX),同一时候还增强了Java和Python语言的支持:最后,Spark1.0.0在运维上做了非常大的改进,包含支持Hadoop/YARN安全机制.使

C# 7.0 新特性3: 模式匹配

本文参考Roslyn项目Issue:#206,及Docs:#patterns. 1. C# 7.0 新特性1: 基于Tuple的“多”返回值方法 2. C# 7.0 新特性2: 本地方法 3. C# 7.0 新特性3: 模式匹配 模式匹配也许能算的上C#本次更新最重量级的升级,也是最受关注的特性(也许没有之一),通过模式匹配,我们可以简化大量的条件代码. Switch语句 大家也许遇到过这样的情景,假设你的代码中,有一个Nullable<int>的值,需要对其在正整数,非正整数,Null三种情

Visual Studio 2015与C#6.0新特性

Visual Studio 2015与C#6.0新特性 更多发现  admin  9个月前 (07-20)  4339浏览 今天,我们很高兴宣布下一代开发工具Visual Studio 2015的新特性,新的改进包括:支持跨平台的C++开发.新开源的.NET编译平台.C++11和C++14的支持,集成Apache的Cordova跨平台移动开发工具和ASP.NET5新框架,这些改进有大有小,零度在此摘录Visual Studio 2015在C#开发方面的新特性. 1.使用null条件运算符,在调用

ASP.NET4.0新特性

原文:ASP.NET4.0新特性 在以前试用VS2010的时候已经关注到它在Web开发支持上的一些变化了,为此我还专门做了一个ppt,当初是计划在4月12日那天讲的,结果因为莫名其妙的原因导致没有语音以致放弃在LiveMeeting上的这次讲课,也导致了本篇的产生. 新增了项目模板 在创建Web项目时可以看到增加了更多的Web项目模板在VS2008中对应的情况如下: 在新模板中有如下改进:基础MemberShip功能.在大多数网站和应用程序中需要进行认证,因此在新模板中增加了认证功能使得用户能在

Kinect for Windows V2.0 新特性

外观: 第二代Kinect for Windows看起来与Kinect for Xbox One相同,用以区别的是Windows版Kinect顶部写着Kinect,Xbox版只有一个绿色的X. Kinect for Windows 2.0 Kinect for Xbox One 主要性能改进: 深度传感:通过更高的深度保真和大幅改进的噪声基底,第二代传感器打造空前的3D视觉效果,通过功能改进,能够看到清晰更小的物体以及提高骨骼追踪的稳定性. 1080p高清视频:1080p 全高清视频呈现高清晰画

iOS开发——新特性OC篇&amp;Swift 2.0新特性

Swift 2.0新特性 转眼间,Swift已经一岁多了,这门新鲜.语法时尚.类型安全.执行速度更快的语言已经渐渐的深入广大开发者的心.我同样也是非常喜爱这门新的编程语言. 今年6月,一年一度的WWDC大会如期而至,在大会上Apple发布了Swift 2.0,引入了很多新的特性,以帮助开发者能更快,更简单的构建应用.我在这里也说道说道Swift 2.0中值得大家注意的新特性. guard语句 guard语句和if语句有点类似,都是根据其关键字之后的表达式的布尔值决定下一步执行什么.但与if语句不

Hadoop 2.5.0新特性和改进

Apache Hadoop 2.5.0是一个在2.x.y发布线上的一个小版本,建立在之前稳定的发布版本2.4.1之上.主要特性和改进: 1. Common a) 使用HTTP代理服务器时认证改进.当通过代理服务器使用WebHDFS时这是非常有用的. b) 增加了一个新的Hadoop指标监控sink,允许直接写到Graphite. c) Hadoop文件系统兼容相关的规范工作. 2. HDFS a) 支持 POSIX风格的扩展文件系统.更多细节查看Extended Attributes in HD