import tensorflow as tf
# 导入mnist数据集
from tensorflow.examples.tutorials.mnist import input_data
mnist=input_data.read_data_sets("/temp/data/",one_hot=True)
# 定义一些常量
learning_rate=0.01
epoch_times=25
display_step=1
# 定义批量梯度下降次数,每100张图计算一次梯度
batch_size=100
# 定义X,Y大小 None代表第几张图,784=28*28,10 classes
# Y=[[1,0,0...,0],
# [0,0,1...,0],
# [0,1,0...,0],
# [0,0,0...,1],
# ...........]
X=tf.placeholder("float", [None,784])
Y=tf.placeholder("float", [None,10])
# 定义W,b大小
W=tf.Variable(tf.zeros([784,10]))
b=tf.Variable(tf.zeros([10]))
# matmul()矩阵相乘 ;multiply()实数相乘
# sigmoid将一个real value映射到(0,1)的区间(当然也可以是(-1,1)),这样可以用来做二分类。
# softmax把一个k维的real value向量(a1,a2,a3,a4….)映射成一个(b1,b2,b3,b4….)
# 其中b是一个0-1的常数,然后可以根据bi的大小来进行多分类的任务,如取权重最大的一维。
# 返回一个10维矩阵
# 注意X,W前后顺序 [None,784]*[784,10]=[None,10]
pred=tf.nn.softmax(tf.matmul(X, W)+b)
# -Y*tf.log(pred):交叉熵代价函数
# 代价函数接近于0.(比如Y=0,pred~0;Y=1,pred~1时,代价函数都接近0)
# 这里的*指对应下标的数相乘,不属于向量相乘,因此返回矩阵大小仍为[None,10]
# tf.reduce_sum(-Y*tf.log(pred),1):
# 返回每个实例的交叉熵(向量),1代表从水平方向求和
# tf.reduce_mean():返回所有交叉熵的平均值(实数)
cost= tf.reduce_mean(tf.reduce_sum(-Y*tf.log(pred),1))
# 调用梯度下降函数
optimizer=tf.train.GradientDescentOptimizer(learning_rate).minimize(cost)
# 初始化参数方法
init=tf.global_variables_initializer()
# 运行参数初始化方法
sess=tf.Session()
sess.run(init)
for epoch in range(epoch_times):
# 初始训练集误差为0
train_cost=0
# 批量梯度下降,返回总批量次数(55000/100=550)
batch_numbers=int(mnist.train.num_examples/batch_size)
for i in range(batch_numbers):
# 每次取100张图片
batch_Xs,batch_Ys=mnist.train.next_batch(batch_size)
# 运行优化函数
# 这里返回一个[optimizer,cost]的list, 其中 _代表optimizer,batch_cost代表cost的值
_,batch_cost=sess.run([optimizer,cost],feed_dict={X:batch_Xs,Y:batch_Ys})
# 等价于上面
# sess.run(optimizer,feed_dict={X:batch_Xs,Y:batch_Ys})
# batch_cost=sess.run(cost,feed_dict={X:batch_Xs,Y:batch_Ys})
# 返回训练集误差:每次计算100张图的batch_cost,计算了i次,所以最后除以batch_numbers
train_cost+=batch_cost/batch_numbers
# 打印每次迭代的误差
if (epoch+1)%display_step==0:
# %04d: % 转义说明符 ; 0 指以0填充前面的位数 ;4 四位数; d 十进制整数
# "{:.9f}".format(train_cost) 以保留小数点后9位显示train_cost
print("Epoch :","%04d"%(epoch+1),"Train_cost","{:9f}".format(train_cost))
print("Optimization finished!")
# tf.arg_max(pred,1):得到向量中最大数的下标,1代表水平方向
# tf.equal():返回布尔值,相等返回1,否则0
# 最后返回大小[none,1]的向量,1所在位置为布尔类型数据
correct_prediction=tf.equal(tf.arg_max(pred,1),tf.arg_max(Y,1))
# tf.cast():将布尔型向量转换成浮点型向量
# tf.reduce_mean():求所有数的均值
# 返回正确率:也就是所有为1的数目占所有数目的比例
accuracy=tf.reduce_mean(tf.cast(correct_prediction,tf.float32))
# 打印正确率
print("Train_accuracy :",sess.run(accuracy,feed_dict={X:mnist.train.images,Y:mnist.train.labels}))
print("Test_accuracy :",sess.run(accuracy,feed_dict={X:mnist.test.images,Y:mnist.test.labels}))
Epoch : 0001 Train_cost 1.182139
Epoch : 0002 Train_cost 0.664811
Epoch : 0003 Train_cost 0.552634
Epoch : 0004 Train_cost 0.498518
Epoch : 0005 Train_cost 0.465431
Epoch : 0006 Train_cost 0.442534
Epoch : 0007 Train_cost 0.425447
Epoch : 0008 Train_cost 0.412136
Epoch : 0009 Train_cost 0.401330
Epoch : 0010 Train_cost 0.392388
Epoch : 0011 Train_cost 0.384719
Epoch : 0012 Train_cost 0.378171
Epoch : 0013 Train_cost 0.372416
Epoch : 0014 Train_cost 0.367238
Epoch : 0015 Train_cost 0.362694
Epoch : 0016 Train_cost 0.358609
Epoch : 0017 Train_cost 0.354874
Epoch : 0018 Train_cost 0.351399
Epoch : 0019 Train_cost 0.348344
Epoch : 0020 Train_cost 0.345431
Epoch : 0021 Train_cost 0.342731
Epoch : 0022 Train_cost 0.340269
Epoch : 0023 Train_cost 0.337952
Epoch : 0024 Train_cost 0.335766
Epoch : 0025 Train_cost 0.333705
Optimization finished!
Train_accuracy : 0.907927
Test_accuracy : 0.9146相关推荐
Tensorflow学习之逻辑回归的实现
代码: # coding:utf-8 import tensorflow as tf import matplotlib.pyplot as plt import numpy as np data=[] label=[] np.random.seed(0) ##随机产生训练集 for i in range(150): x1=np.random.uniform(-1,1) x2
使用 TensorFlow 执行逻辑回归
在本教程中,您学习了逻辑回归的基础知识,以及如何使用 TensorFlow 实现机器学习算法。您学习了如何在 IBM Cloud Pak for Data as a Service 上使用 Watson Studio 运行 Jupyter Notebook,以及如何在 IBM Cloud Pak for Data as a Service 平台中使用开源框架。
TensorFlow学习笔记(三):TensorFlow实现逻辑回归模型
一、Mnist数据集的介绍与获取 1.Mnist数据集的介绍 简介 60000行的训练数据集(mnist.train)和10000行的测试数据集(mnist.test) 每一个MNIST数据单元有两部分组成:一张包含手写数字的图片和一个对应的标签。我们把这些图片设为“xs”,把这些标签设为“ys”。训练数据集和测试数据集都包含xs和ys,比如训练数据集的图片是 mnist.trai
16- TensorFlow实现线性回归和逻辑回归 (TensorFlow系列) (深度学习)
定义线性模型# 定义损失函数# 定义优化器# 定义优化过程# 把需要求导的计算过程放入gradient pape中执行,会自动实现求导# 计算梯度# 更新w, b# 定义预测变量# 定义损失# y_pred 是概率,存在可能性是0, 需要进行截断# 定义优化器# 计算预测值pred = sigmoid(x) # 结果为概率#计算梯度# 更新W, B# 计算准确率# 需要把概率转换为类别# 概率大于0.5 可以判断为正例。
【TensorFlow】逻辑回归原理与实现(超详细)
逻辑回归原理与实现学习目标1. 神经网络基础1.1 Logistic回归1.2 逻辑回归损失函数2. 梯度下降算法3. 导数3.1 导数3.2 导数计算图3.3 链式法则3.4 逻辑回归的梯度下降4. 向量化编程4.1 向量化优势4.2 向量化实现伪代码5. 案例:实现逻辑回归5.1 使用数据:制作二分类数据集5.2 步骤设计 学习目标 目标 知道逻辑回归的算法计算输出、损失函数 知道导数的计算图 知道逻辑回归的梯度下降算法 知道多样本的向量计算 应用 应用完成向量化运算 应用完成一个单神经元神经
当知识图谱遇见多模态:突破文本界限的智能认知革命
本文探讨了知识图谱与多模态技术的融合,揭示了其在医疗诊断、文化保护等领域的革命性应用。通过图神经网络、对比学习框架和跨模态注意力机制等技术,实现了文本、图像和音频数据的智能关联与认知。文章还分享了在Neo4j等图数据库中的实践案例和优化策略,为构建下一代智能认知系统提供了技术参考。
TensorFlow实现逻辑回归-简单案例
【代码】TensorFlow实现逻辑回归-简单案例。
nCode:GlyphWorks案例教程一
nCode GlyphWorks案例一Comparing Frequency Content of Two Different Tests案例文件目标配置选择数据 Comparing Frequency Content of Two Different Tests 在本案例中,我们将比较来自两个不同测试的六个加速计通道的频率内容。将三轴加速度计放置在车辆的左前角和右前角,然后分别在两个不同的试验路面上行驶12分钟以上。 案例文件 此案例的文件(采用nCode DAC格式)位于nCode安装目录下的\demo
【Tensorflow】Tensorflow实现线性回归及逻辑回归
前言 Tensorflow详细入门 前文我们介绍了关于 Tensorflow 的基本操作,知道了 Tensorflow 主要应用于机器学习和深度神经网络方面的研究,接下来我们就用 Tensorflow 来实现机器学习中的线性回归和逻辑回归,进一步了解 Tensorflow 的使用。 大体可包括如下几步: 数据的获取、处理、划分 模型的图构建 损失函数的构建 选择优化方式和优化目标 变量初始化...
5个免费股票数据API实测对比:从AkShare到BaoStock,哪个最适合你的AI量化项目?
本文深度评测了AkShare、BaoStock、yfinance、Alpha Vantage和EOD Historical Data这五个免费股票数据API,从数据质量、覆盖范围、更新频率、稳定性及易用性进行对比。针对AI量化项目,文章提供了详细的选型策略,帮助开发者根据项目阶段与需求,精准选择最适合的数据源,并强调了多源验证与数据清洗的重要性。
不止于HTTPS请求:用VS2022编译的libcurl玩转文件上传和代理设置
本文详细介绍了如何使用VS2022编译的libcurl库实现文件上传和高级代理配置。通过实战代码示例,展示了多部分表单上传、二进制数据上传以及各种代理设置技巧,帮助C++开发者提升网络编程能力。
TensorFlow实现逻辑回归
实现逻辑回归的套路和实现线性回归差不多, 只不过逻辑回归的目标函数和损失函数不一样而已.
用OpenIPC复活你的旧摄像头:手把手教你给君正T31芯片设备刷开源固件
本文详细介绍了如何使用OpenIPC项目为君正T31芯片的旧摄像头刷入开源固件,解锁更多功能并延长设备寿命。从硬件识别、风险控制到详细刷机步骤和后期配置,手把手教你将闲置摄像头改造为智能监控设备,实现隐私可控、功能扩展等优势。
基于tensorflow实现逻辑回归
交叉熵
YOLO26改进策略【卷积层】| HWD,引入`Haar小波变换`到下采样模块中,减少信息丢失
本文记录的是。传统的卷积神经网络中常用的最大池化平均池化和步长为2的卷积等操作进行下采样可能会导致信息丢失,为了解决信息丢失问题,HWD作者受无损信息变换方法的启发,引入Haar小波变换到下采样模块中,
YOLO26科研优化:多损失函数(EIoU、SIoU等)融合,让边界框回归精度再上台阶
将原有损失函数替换为我们编写的MultiLoss。例如,在bbox_loss。
tensorflow手动实现算法之三逻辑回归
1.逻辑回归算法 逻辑回归是日常工作中最常用的算法之一。虽然逻辑回归很简单,出现的年代也比较久远,但是实现简单,可解释性强,一般效果也不会太差,尤其在处理海量数据集的时候具有性能上的巨大优势,因此逻辑回归一般会被用作线上算法的baseline版本之一。 之前逻辑回归系列文章 为什么要使用logistic函数 损失函数(cost function)详解 梯度下降训练方法 2.tensorflow实现...
2026年华为OD机试真题 新系统【点亮战争迷雾】
华为OD机试真题 8月18号 新系统【点亮战争迷雾】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【点亮战争迷雾】多语言题解。
TensorFlow实现逻辑回归模型
使用TensorFlow的tf.keras模块定义逻辑回归模型。模型包含一个输入层和一个输出层,输出层使用sigmoid激活函数。定义优化器和损失函数。这里使用随机梯度下降优化器和二元交叉熵损失函数。本文介绍了如何使用TensorFlow实现逻辑回归模型,并通过动态绘制决策边界和损失曲线来观察模型的训练过程。逻辑回归是一种简单而有效的分类算法,适用于二分类问题。通过TensorFlow框架,我们可以轻松地实现和训练逻辑回归模型,并利用其强大的功能来优化模型的性能。
蓝牙模块HM-10手册
蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。
ssm框架搭建
这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载
使用tensorflow实现一个简单的逻辑回归
# -*- coding:utf-8 -*- #功能: 使用tensorflow实现一个简单的逻辑回归 import tensorflow as tf import numpy as np import matplotlib.pyplot as plt #创建占位符 X=tf.placeholder(tf.float32) Y=tf.placeholder(tf.float32) #创建...
visio安装包
Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。
TensorFlow的逻辑回归实现
打开微信扫一扫,关注微信公众号【数据与算法联盟】 转载请注明出处:http://blog.youkuaiyun.com/gamer_gyt 博主微博:http://weibo.com/234654758 Github:https://github.com/thinkgamer 逻辑回归我们都知道是用来进行二分类处理的,里边经常用到的阶跃函数是海维塞得阶跃函数(Sig...
假人有限元模型
假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用
【深度学习】TensorFlow实现逻辑回归预测
总结: 一、理论部分 线性回归的预测结果是连续的值,而逻辑回归的结果属于是/否的二元分类; 线性回归使用均方差作为损失函数较合适,而逻辑回归若使用均方差作为损失函数会使得训练变慢,因为实际值减去预测值平方后的结果可能会非常小; 逻辑回归使用交叉熵作为损失函数,p(x)为概率 对应TensorFlow里binary_crossentropy 二、代码 ...
TensorFlow-Examples中的逻辑回归实现详解
TensorFlow-Examples中的逻辑回归实现详解 【免费下载链接】TensorFlow-Examples TensorFlow Tutorial and Examples for Beginners (support TF v1 & v2) ...
使用TensorFlow编程实现一元逻辑回归
在实现逻辑回归时,需要计算 Sigmoid 函数: 如何编程来实现这个函数表达式: import numpy as np import tensorflow as tf # 在TensorFlow中, 使用 exp 来实现 e^x 的运算, # 需要注意这个函数的参数要求是浮点数。 x = np.array([1., 2., 3., 4.]) w = tf.Variable(1.) b = tf.Variable(1.) print(1/(1+tf.exp(-(w*x+b)))) """ tf.Te
2691



被折叠的 条评论
为什么被折叠?



