TensorFlow学习笔记(一)

本文记录了作者从爬虫转向机器学习的学习过程,介绍了TensorFlow的基本概念及神经网络的搭建流程,包括张量、计算图、神经网络结构等,并分享了实践中的心得与问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

从今天开始,开始学习tensorflow。至于原因么emmmm,我最开始学python是用来写爬虫的,然后开始自己爬一些大型的数据,存到数据库中,emmm然后我发现这就完了啊。有的用户信息我爬下来还能用Matplotlib做一些可视化看看,还有好多其他数据都浪费掉了。所以去学一些机器学习的知识让这些数据能够利用起来把。

写这个笔记也算是能督促我一下吧,还真不清楚能不能一口气学下去,(爬虫就断了几个月哈哈哈),这算是我的个人日记吧。也算是练练文笔。练练自己的耐心。每天把自己的学习笔记以及出现的问题总结一下把。刚开始也有一些懵,毕竟新手慢慢来吧。

在学习tensorflow之前把吴恩达的机器学习那些理论课程看完了,所以有一些理论基础。

今天的笔记:

1 .TensorFlow中的所有计算都会转化为计算图的节点

 

2.Tensor的意思是张量的意思。大致就可以理解为多维数组

 

3.Flow是流的意思

 

4.tensorflow中的每一个计算都是计算图上的一个节点,节点之间的边描述了计算之间的依赖关系

 

5.计算图的使用

 

6.可以定义不同的计算图来分别进行计算,类比matplotlib中的figure()

 

7.张量的概念,张量可以理解为一个多维数组其中

a.零阶张量 表示一个标量(scalar)也就是一个数

b.一阶张量 表示一个向量(vector)一维数组

c.n阶张量 表示N维向量

 

8.输出的张量的属性主要有三个 name ,shape 以及 type

<bound method Tensor.eval of <tf.Tensor 'Add_29:0' shape=(2,) dtype=int32>>

意思是这个张量是 Add_29节点的第一个输出(坐标从0开始)

shape(2,)说明是是一个一维数组,表示长度为2

dtype表示的张量的类型

 

9.开始实现要给神经网络

 

10.神经网络的结构:目前主流的神经网络都是分层的结构,第一层是输入层(主要是包括特征向量每一个特征的取值)

输入层和输出层之间有一个隐藏层,一般神经网络的深度适合隐藏层相关的,隐藏层越深,那么这个伸进网络越深。

还有一层是输出层,输出层的结构不一,看属于哪类问题

 

11.一些专有名词learning rate(学习率,和梯度下降方法有关) activation function(激活函数) regularization(正则化) bias(偏置)

 

12.神经网络解决分类问题主要有一下4个步骤:

a.提取问题中实体的特征向量作为神经网络的输入

b.定义神经网络的结构,并定义如何从神经网络中得到输出(这个过程就是神经网络的向前传播算法)

c.通过孙连数据来调整神经网络参数的取值,训练神经网络

d.使用训练好的神经网络来预测位置的数据

 

13.向前传播算法:

了解神经元的结构,如图01-1所示,一个神经元有多个输入和一个输出

一个简单的 零件的神经网络示意图 如果01-2所示

通过简单代码实现就是 a = tf.matmlu(x,w1) 其中a表示隐藏层,x表示输入层,w1表示输入层与隐藏层每条边的权重

通过简单代码实现就是 y = tf.matmlu(a,w2)其中y表示输出层,a表示隐藏层,w2表示输出层与隐藏层每条边的权重

 

14.在神经网络中,偏置项(bias)通常会使用常熟来设置初始值.

biases = tf.Variable(tf.zeros([3]))

 

15.在神经网络优化算法中,最常用的方法是反向传播算法。如图01-3所示

 

16.在得到一个batch的前向传播之后,需要定义一个损失函数来刻画当前的预测值和真是答案之间的差距

cross_entropy = -tf.reduce_mean(y_*tf.log(tf.clip_by_value(y,le-10,1.0)))

learning_rate = 0.001

train_step = tf.train.AdamOptimizer(learning_rate).minimize(cross_entropy)

 

在上面的代码中,cross_entropy定义了真实值和预测值的交叉熵,这是分类问题中一个常用的损失函数。

在train_step定义了反向传播的优化方法,目前tensorflow中有7种不同的优化器,比较常用的三个:

tf.train.GradientDescentOptimizer,tf.train.AdamOptimizer和tf.train.MomentumOptimizer

 

17.训练神经网络的过程可以分成以下3个步骤:

1.定义神经网络的结构和前向输出的结果

2.定义损失函数以及选择反向传播优化的算法。

3.生成会话,并且在顺联数据上反复运行反向传播算法。

 

总结:今天主要是开始了解一下tensorflow怎么运行吧,以及里面变量啥的怎么玩,发现做机器学习还是很方便的。今天主要遇到的问题就是老是忘记变量的初始化。然后今天照着例子做了一个完整的神经网络的样例,通过这个样例对与整个神经网络有了一个基本了解,还要继续努力。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值