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

TensorFlow项目1——鸢尾花识别(来源:北大曹健老师tensorflow学习视频)

项目1.鸢尾花识别

1.完整代码

import matplotlib.pyplot as plt
from sklearn import datasets
from pandas import DataFrame
import pandas as pd
import numpy as np
import tensorflow as tf# 数据处理
#1.读取iris数据(sklearn已有)
#2.随机打乱(特征标签仍配对)
#3.选取部分数据为train,test(不重叠)
#4.from_tensor_slices将特征与标签一一对应
#将x特征进行类型转换,防止数据类型不一致,后续矩阵相乘报错
x_data = datasets.load_iris().data
y_data = datasets.load_iris().targetnp.random.seed(116)
np.random.shuffle(x_data)
np.random.seed(116)
np.random.shuffle(y_data)
tf.random.set_seed(116)x_train = x_data[:-30]
y_train = y_data[:-30]
x_test = x_data[-30:]
y_test = y_data[-30:]x_train = tf.cast(x_train, tf.float32)
x_test = tf.cast(x_test, tf.float32)train_db = tf.data.Dataset.from_tensor_slices((x_train, y_train)).batch(32)
test_db = tf.data.Dataset.from_tensor_slices((x_test, y_test)).batch(32)# 搭建网络
w1 = tf.Variable(tf.random.truncated_normal([4, 3], stddev=0.1, seed=1))
b1 = tf.Variable(tf.random.truncated_normal([3], stddev=0.1, seed=1))#设置超参数
epoch = 500
lr = 0.1
train_loss_result = []
test_acc = []
loss_all = 0#训练网络,每个epoch都会测试准确率
for epoch in range(epoch):for step, (x_train, y_train) in enumerate(train_db):with tf.GradientTape() as tape:y = tf.matmul(x_train, w1) + b1y = tf.nn.softmax(y)y_ = tf.one_hot(y_train, depth=3)loss = tf.reduce_mean(tf.square(y_ - y))loss_all += loss.numpy()grads = tape.gradient(loss, [w1, b1])w1.assign_sub(lr * grads[0])b1.assign_sub(lr * grads[1])print("Epoch{},loss:{}".format(epoch, loss_all / 4))train_loss_result.append(loss_all / 4)loss_all = 0total_correct, total_number = 0, 0for x_test, y_test in test_db:y = tf.matmul(x_test, w1) + b1y = tf.nn.softmax(y)pred = tf.argmax(y, axis=1)pred = tf.cast(pred, dtype=y_test.dtype)correct = tf.cast(tf.equal(pred, y_test), dtype=tf.int32)correct = tf.reduce_sum(correct)total_correct += int(correct)total_number += x_test.shape[0]acc=total_correct/total_numbertest_acc.append(acc)print("Test_acc:",acc)print("----------------------------------")#可视化
plt.title('Loss Function Curve')
plt.xlabel('Epoch')
plt.ylabel('Loss')
plt.plot(train_loss_result,label="$Loss$")
plt.legend()
plt.show()plt.title('Acc Curve')
plt.xlabel('Epoch')
plt.ylabel('Acc')
plt.plot(test_acc,label="$Accuracy$")
plt.legend()
plt.show()

2.整体流程和学习笔记

2.1数据的读取与处理

# 数据处理
#1.读取iris数据(sklearn已有)
#2.随机打乱(特征标签仍配对)
#3.选取部分数据为train,test(不重叠)
#4.from_tensor_slices将特征与标签一一对应
#将x特征进行类型转换,防止数据类型不一致,后续矩阵相乘报错
x_data = datasets.load_iris().data
y_data = datasets.load_iris().targetnp.random.seed(116)
np.random.shuffle(x_data)
np.random.seed(116)
np.random.shuffle(y_data)
tf.random.set_seed(116)x_train = x_data[:-30]
y_train = y_data[:-30]
x_test = x_data[-30:]
y_test = y_data[-30:]x_train = tf.cast(x_train, tf.float32)
x_test = tf.cast(x_test, tf.float32)train_db = tf.data.Dataset.from_tensor_slices((x_train, y_train)).batch(32)
test_db = tf.data.Dataset.from_tensor_slices((x_test, y_test)).batch(32)

2.1.1 关于datasets
详细见sklearn官方手册–datasets

①数据的种类
主要有两种:

  • 封装好的经典数据。 例如boston 房价, 糖尿病, 数字, Iris 花。在代码中以“load”开头。
  • 自己设计参数,然后生成的数据。 例如用来训练线性回归模型的数据(强大)。在代码中以“make”开头。

②datasets的用法
封装好的数据
设计的数据

2.2.2 随机数random的用法

数据集随机化的作用:shuffle 就是为了避免数据投入的顺序对网络训练造成影响。
增加随机性,提高网络的泛化性能,避免因为有规律的数据出现,导致权重更新时的梯度过于极端,避免最终模型过拟合或欠拟合。

random更多可参考Python3.7的random模块详解

random.seed(a=None, version=2)
传入的数值用于指定随机数生成时所用算法开始时所选定的整数值。
random()是伪随机,实际上由确定公式根据初始值seed计算得出。当seed固定时,对特定数据的处理会产生相同的结果。 如果使用相同的seed()值,则每次生成的随机数都相同;如果不设置这个值,则系统会根据时间来自己选择这个值,此时每次生成的随机数会因时间的差异而有所不同。
对于seed()的理解,简单的说就是“seed()的输入值决定了这个随机序列,输入值确定随机序列也就确定了,不同输入值的随机序列不同

random.shuffle(x[, random])用于打乱序列。
当random.seed()设定一个初始值时,random.shuffle()打乱的顺序保持不变。因此可以保证,打乱后特征与标签仍然一一对应。原理在于种子

依赖随机种子的操作实上是从两个种子派生的:图种子(graph-level> seed)和操作级别种子(operation> seed)

规则如下:
如果既未设置图种子也未设置操作种子:此操作使用随机选择的种子。
如果设置了图级别的种子,但未设置操作种子:系统确定性地选择一个操作种子和图级别的种子,以便获得唯一的随机序列。(注:在tensorflow和用户代码的相同版本中,此序列是确定性的。但是,在不同版本中,此序列可能会更改。如果代码依赖特定的种子来工作,则明确指定图级别和操作级别种子。)
如果设置了操作种子,但未设置图种子:使用默认的图种子和指定的操作种子来确定随机序列。
如果同时设置了图种子和操作种子:将两个种子一起使用以确定随机序列。

>>> deck = 'ace two three four'.split()
>>> shuffle(deck)
>>> deck
['four', 'two', 'ace', 'three']

另外,还有特征与标签随机打乱后,不改变配对关系的方法:

b = [1, 2,3, 4, 5,6 , 7,8 ,9]
a  = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h','i']
c = list(zip(a, b))
print(c)
random.Random(100).shuffle(c)
print(c)
a, b = zip(*c)
print(a)
print(b)输出结果:
[('a', 1), ('b', 2), ('c', 3), ('d', 4), ('e', 5), ('f', 6), ('g', 7), ('h', 8), ('i', 9)]
[('a', 1), ('g', 7), ('c', 3), ('i', 9), ('h', 8), ('e', 5), ('f', 6), ('d', 4), ('b', 2)]
('a', 'g', 'c', 'i', 'h', 'e', 'f', 'd', 'b')
(1, 7, 3, 9, 8, 5, 6, 4, 2)

2.2.3

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.exyb.cn/news/show-35330.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

Java工作资料!同花顺java开发怎么样

前言 昨天,有个女孩子问我提高数据库查询性能有什么立竿见影的好方法? 这简直是一道送分题,我自豪且略带鄙夷的说,当然是加「索引」了。 她又不紧不慢的问,索引为什么就能提高查询性能。 这还用问,索引…...

IFRS17改造记录

一,为什么要推行IFRS17(简称:I17) 不同国家,不同的保险产品采用不同的会计计量方法(中国保险业现行的会计准则是基于IFRS4准则)保险行业的财务报告难于理解对风险没有明确的量化计量部分国家由…...

js/python 抓取网页数据,导出execl

文章目录前言操作代码前言 js的方式:直接使用post获取所有的数据,因为是分页数据有total显示所有的数据,在请求的时候,就可以直接把每页的数据显示为total的值。没有太大的技术含量 python方式:直接遍历页码获取数据&…...

SpringCloud Alibaba实战(7:nacos注册中心管理微服务)

源码地址:https://gitee.com/fighter3/eshop-project.git 持续更新中…… 在上一节我们已经完成了Nacos Server的本地部署,这一节我们学习如何将Nacos作为注册中心,管理微服务。 1、注册中心简介 1.1、什么是注册中心 在微服务的体系里&am…...

xboot大神的libonnx环境搭建

1.get代码 git clone gitgitee.com:xboot/libonnx.git 2.安装依赖: sudo apt-get install libsdl2-dev sudo apt-get install libsdl2-gfx-dev 3.编译 4.结果 5.验证 进入examples/mnist,执行mnist. 结束!...

链表反转。

举个例子来分析一下如何实现链表的反转。 链表示例:9—>6—>8—>7—>1—>null。 1)首先定义两个指针cur、pre分别指向链表头和链表尾。 2)定义一个临时指针,指向cur.next。 3)修改cur指针的指向&#x…...

Visual Studio

Visual Studio 2019 Enterprise(企业版):BF8Y8-GN2QH-T84XB-QVY3B-RC4DF Visual Studio 2019 Professional(专业版):NYWVH-HT4XC-R2WYW-9Y3CM-X4V3Y...

数据结构与算法常用总结

数据结构1.常用数据结构及其原理1.1 数组1.2 链表1.3 队列1.4 栈1.5 哈希表1.6 二叉树2.常见数据结构面试题2.1数组和链表的区别2.2 排序算法2.3 栈结构与队列的区别1.常用数据结构及其原理 1.1 数组 每一个数组元素的位置由数字编号,称为下标或者索引(index)。大根…...

Linux中文件的分类

在Linux中,一切皆文件,Linux系统中文件的分类如下: 1、文本文件。文件组成主要是ASCII字符,文件作用是记录普通文件,如shell脚本文件、源文件、TXT文件等。 2、二进制文件。文件由二进制0、1组成,文件作用是…...

你花了多久弄明白架构设计?多个java应用同时访问数据库

01 分布式限流:NginxZooKeeper 1.1 分布式限流之Nginx 请解释一下什么是 Nginx? 请列举 x Nginx 的一些特性。 请列举 x Nginx 和 和 Apache 之间的不同点 请解释 x Nginx 如何处理 P HTTP 请求。 在 x Nginx 中,如何使用未定义的服务器名称来阻止…...

易-----

易 本人00后,近期在学子平、八字命理、易经玄学方面,如也是玄学爱好者,可以加联系方式一起讨论、学习,年龄相仿更好。 微信:1783176946 事实上还有两种《易经》,一种叫《连山易》,一种叫《归藏…...

2021-8-23 18点00 程序外生活 - 中国A50指数 机器预测学习跟踪记录 - 日线开始反弹,但是会有反复,周线继续确认底部。

日线级别:下跌尾部可能有反复,大概率震荡消耗,有概率出现最后一跌,释放能量。 周线级别: 第一次确定短期底部,预计震荡方式往上,量能较弱,此处为为长期趋势线附近支撑,值得守住。 …...

5852. 最小化目标值与所选元素的差 记忆化dfs,关键在于你怎么定义变量

目录解题思路代码解题思路 当时是个周赛题,试图利用爆搜解决的。。。。 显然不行,然后又听有人说是个背包QAQ dl都欺负我(╥╯^╰╥)嘤嘤嘤 不过了解了二维数组第一维放行数第二维放和,,,瞬间感觉记忆化搜索又可以…...

Spring面试题复习(一)

Spring面试题复习(一) 一、Spring是什么? Spring是一个轻量级的开发框架,常说的Spring框架,就是指Spring Framework,它是很多模块的集合,这些模块可以帮助我们开发人员简化开发,这…...

用Python搭建股票舆情分析系统

写在前面 下面的这篇文章将手把手教大家搭建一个简单的股票舆情分析系统,其中将先通过金融界网站爬取指定股票在一段时间的新闻,然后通过百度情感分析接口,用于评估指定股票的正面和反面新闻的占比,以此确定该股票是处于利好还是…...

_____

sel,1SELECT * FROM table sel,2SELECT * FROM table WHERE name 强哥 sel,3SELECT * FROM table ORDER BY updateTime DESC hui,1会 paiban,1排班 beifen,1备份 gaihao,1改好 dai,1待 tu,1图 dangran,1当然 minxian,1明显 mingxian,1明显 suji,1苏稽 shizhan,1适展 gaihaole…...

源码分析MyCat专栏

源码分析MyCAT1.6目录 1、源码研究mycat之mysql通信协议篇之握手认证协议 2、源码分析mycat1.6之mysql通信协议篇之COM_QUERY(SELECT语句报文解析) 3、源码分析mycat1.6之mysql通信协议篇之存储过程调用 4、源码研读Mycat1.6之网络篇---前端线程模型(应用程序与…...

Python函数参数(必选、默认、可变、关键字)

Python函数参数(必选、默认、可变、关键字) 【参考】:https://blog.csdn.net/pql925/article/details/80999086 1. 必选参数 必选参数,即使用普通变量标识符标识形参,没有默认赋值或*星号。 def power2(x):return x*…...

如何快速打好Java基础 初学者常用哪些工具

如何快速打好Java基础,初学者常用哪些工具?从来不认为学好技术能和快速划上等号,对于技术而言,快速掌握的只是大体的技术框架,想要深入学习,还是需要时间的沉淀和技术经验的积累。 对于初学者而言&#xff…...

Android常见控件

设置进度条,加载 设置通知 权重分配的是剩余的空间...

1.5 异常

什么是异常 异常就是在程序运行期间,因为某些原因导致程序出现了错误的情况。 异常封装了三个重要信息: 类型,信息,行号 异常的简单继承结构 Throwable |- Error 系统级别的错误,无法处理,只能停止运行 |- Excepti…...

使用朴素贝叶斯过滤垃圾邮件

示例:使用朴素贝叶斯对电子邮件进行分类(1) 收集数据:提供文本文件。(2) 准备数据:将文本文件解析成词条向量。 (3) 分析数据:检查词条确保解析的正确性。(4) 训练算法:使用我们之前建立的trainNB0()函数。(5) 测试算法…...

链表反转。

举个例子来分析一下如何实现链表的反转。 链表示例:9—>6—>8—>7—>1—>null。 1)首先定义两个指针cur、pre分别指向链表头和链表尾。 2)定义一个临时指针,指向cur.next。 3)修改cur指针的指向&#x…...

day01_java常识丶环境搭建丶入门程序

Java语言发展历史 Java诞生于SUN(Stanford University Network),09年SUN被Oracle(甲骨文)收购。Java之父是詹姆斯.高斯林(James Gosling)。1996年发布JDK1.0版。 目前最使用最多的版本是Java8。 ​ Java技术体系平台 …...

C++类的讲解(一)(超详细)

C类的讲解 1、面向对象和类的介绍 1)面向对象 C语言使用面向过程的编程方式,而C则增加了面向对象的编程方式。 面向过程:分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就…...

KNN算法基础教学

目录 1、KNN算法概述 2、什么是knn算法 3、算法原理解析 3.1、通用步骤 3.2、k的取值对预测结果的影响 3.3、k的选取 4、实战应用 (癌症检测数据) 完整代码: 1、KNN算法概述 KNN可以说是最简单的分类算法之一,同时&#xff0…...

Google Earth Engine(GEE)——容易犯的错误3(请在select之前使用filter )和(用updateMask()代替mask())、组合reducer的使用!

首先过滤再select() 通常,在对集合执行任何其他操作之前,按时间、位置和/或元数据过滤输入集合。在选择性较少的过滤器之前应用更多选择性过滤器。空间和/或时间过滤器通常更具选择性。例如,请注意select()和之前filter()应用: m…...

elasticsearch7 2021.8.24版本可用 ---head插件总是健康状态未连接

特别要注意跨域和discovery.zen.ping.unicast.hosts 要不然,head插件总是健康状态未连接 1.主节点配置文件 [rootes_master ~]# cat /home/wx/elasticsearch-7.9.0/config/elasticsearch.yml cluster.name: ELK-Cluster node.name: elk-node1 # 开启跨域访问支持&…...

【DCTWVRP】遗传算法求解带容量+距离+时间窗的车辆路径规划问题【Matlab 1211期】

一、VRP简介 1 VRP基本原理 车辆路径规划问题(Vehicle Routing Problem,VRP)是运筹学里重要的研究问题之一。VRP关注有一个供货商与K个销售点的路径规划的情况,可以简述为:对一系列发货点和收货点,组织调用一定的车辆&#xff0c…...

post与get请求的区别以及转发和重定向的区别

post 与get请求的额区别 比较角度GETPOST请求的数据是否在url上显示会 url?参数名参数值(不安全)不会 在Form Data中(安全)是否是表单的默认提交方式是不是执行效率高低(相对于GET)提交数据大小最大是102…...

双色球 脱壳加去效验

【破文标题】双色球 脱壳加去效验 BY lvcaolhx【破文作者】lvcaolhx【作者邮箱】[email]hafiwusohu.com[/email]【作者主页】lvcaolhx.blog.51cto.com【破解工具】OD/PEID【破解平台】XPsp2【软件名称】双色球【软件大小】【原版下载】自己到网上搜索【保护方式】【软件简介】【…...

docker镜像如何下载到本地

Docker save 命令 | 菜鸟教程 查看镜像 docker images 保存到本地 docker save 999c20aee5da > /home/artipub.tar 999c20aee5da为镜像ID docker save : 将指定镜像保存成 tar 归档文件。 语法 docker save [OPTIONS] IMAGE [IMAGE...] OPTIONS 说明: -o :…...

matlab预测双色球

下面是源代码(fc.m): function yfc(isPloy,factorial); %function yfc(isPloy,factorial); %factorial表示预测函数的阶乘个数,默认是5 %isPloy判断参数的个数,来决定是否,每个阶都进行画图,默认是0(不进行画图) %close %关闭图形界面 %clea…...

Python项目分析:预测双色球福利彩票中奖号码

前言 大家早好、午好、晚好吖 ❤ ~ 双色球是中国福利彩票的一种玩法。 红球一共6组,每组从1-33中抽取一个,六个互相不重复。 然后蓝球是从1-16中抽取一个数字,这整个组成的双色球 python从零基础入门到实战,想要源码数据集的&…...

网格交易概述

一、网格交易概述 在全球经济格局不断变化,A股市场长期波动的大背景下,如何找到一种应对股市震荡,有效规避风险的投资方法是件值得研究的事情。本人通过这些年观察跟踪指数基金(特别是行业ETF)、可转债、股票等&#…...

Python全栈开发-Day3-Python基础3

本节内容 1. 函数基本语法及特性 2. 参数与局部变量 3.递归 4.函数式编程介绍 5.高阶函数 1.函数基本语法及特性 三种编程范式: 1、面向过程:过程——> def 2、面向对象:类——> class 3、函数式编程:函数——> def 函数…...

技术前沿与经典文章11:“吊打”巴菲特,脚踩华尔街,数学家一年狂赚100亿

今天就为大家介绍一位最会赚钱的顶级数学家,他不仅拿过国际数学大奖,还在华尔街“吊打”巴菲特,他就是最低调的华尔街富豪詹姆斯西蒙斯。 一、数学学好,人生开挂 1938年出生于马萨诸塞州的西蒙斯是一家鞋厂老板的儿子&#xff08…...

NBA球星是如何投篮的?把詹姆斯、库里的投篮数据图3D打印出来

NBA球星是如何投篮的?把詹姆斯、库里的投篮数据图3D打印出来 大数据文摘出品 2017-2018的NBA赛季已经落幕。虽然勇士夺冠的结果没有出乎太多人的意料,但是一些扣人心弦的戏码还是令人印象深刻。 2018年是个”只要有体育就有数据“的年代。NBA也不例外…...

适配高DPI QWidget::move移动有错误?

适配高DPI QWidget::move移动有错误? 1、现象 在适配高DPI文章发布之后,有个小伙伴立马联系我说增加了这个特性之后,发现一个移动坐标的问题。 比如说:QWidget::move(500, 500),在实际的高DPI屏幕上移动的像素并不是…...

对冲基金经理西蒙斯的奇迹

詹姆斯西蒙斯是世界级的数学家,也是最伟大的对冲基金经理之一。2005年,西蒙斯成为全球收入最高的对冲基金经理,净赚15亿美元,差不多是索罗斯的两倍。07 年收入28亿美元排名第三.从1988年开始,他所掌管的大奖章基金年均…...

颠覆认知!完美赌徒,到底是如何用数学打造经济神话?!

▲ 点击查看说起世界上最会赚钱的数学家,非詹姆斯西蒙斯莫属。1938年,西蒙斯出生于美国的马萨诸塞州,是一个鞋厂的儿子。在其他的孩子,还在听童话故事的时候,西蒙斯就已经开始展露出惊人的数学天赋了。3岁的时候&…...

数学,常识和运气:西蒙斯MIT演讲

有这样一个人,他—— 23岁戴上博士帽; 26岁闯入情报界,摇身变为破译密码的特工; 30岁成为纽约大学石溪分校数学系带头人; 37岁赢得几何学最高奖项; 44岁闯荡华尔街,成立掀起业界变革的传奇对…...

量化之王:文艺复兴科技公司西蒙斯

正道 西谚有云:你必须非主流才能入流(You have to be out to be in),詹姆斯西蒙斯(James Simons)特立独行的人生经历,恰是这句话的最好写照。 他是世界级的数学家,担任着美国数学协会的主席(Math for America);他是历史…...

西蒙斯:捕捉市场大量异常瞬间机会来赚钱

阅读原文:http://club.jr.jd.com/quant/topic/1108273 京东金融官方资讯QQ:3414182370 有什么想问的想说的都可以来参与!还有机会获取奖品! "从1988年到2008年,他管理下的大奖章(Medallion)基金的年均净回报率是35.6%&#x…...

LevOJ P1291 西蒙斯的金钱帝国

题目描述 詹姆斯・西蒙斯是世界级的数学家,也是最伟大的对冲基金经理之一。全球收入最高的对冲基金经理,年净赚 15 亿美元。在华尔街,韬光养晦是优秀的对冲基金经理恪守的准则,詹姆斯?西蒙斯也是如此,即使是…...

詹姆斯·西蒙斯 - 金融业的数学大师

在大数据的时代,也许在金融行业进行数学分析才是真正的点金石。 参考:James Simons:一个亿万富翁数学家的奇特好奇心...

詹姆斯·西蒙斯-数学,常识和运气

詹姆斯西蒙斯( James Simons,1938年-)是美国的数学家、投资家和慈善家。作为最伟大的对冲基金经理之一,他是量化投资的传奇人物。西蒙斯 1958年毕业于麻省理工学院数学系, 1962年在伯克利加州大学获得博士学…...

对话昔日“斜杠青年”西蒙斯:传奇数学家的别样人生

詹姆斯西蒙斯(James Simons)的传奇经历一直被人津津乐道。作为数学家,他建立了近代物理学“弦理论”的数学基础,摘得数学界的皇冠 ——全美维布伦( Veblen)奖。他还曾经是美国国家安全局的解密专家&#xf…...

量化投资大师詹姆斯·西蒙斯经典演讲:数学,常识和运气

【转载】摘要: 詹姆斯西蒙斯( James Simons,1938年-)是美国的数学家、投资家和慈善家。作为最伟大的对冲基金经理之一,他是量化投资的传奇人物。西蒙斯1958年毕业于麻省理工学院数学系,1962年在伯克利加州大…...

提高班第二周周记

来这的第二个星期,周六早上经蓓老师有演讲,上面的同学让我转发这条信息,我很不理解,至少那时我还不是对提高班这件事深信不疑的一个人,觉得酒香不怕巷子深,你要是真好,还用这么大费周章让自己的…...