pytorch unsqueeze_pytorch学习笔记(kmeans简单实现)

v2-8888d63f9a0c8234d46679e348a6f0ae_1440w.jpg?source=172ae18b

pytorch和numpy有很多相似之处,有种似曾相识的感觉,以下纪录pytorch常用的数据操作,并实现kmean,以对pytorch接口有初步熟悉。

torch.from_numpy(ndarray)

将一个numpy数据转成Tensor张量,二者共用内存,意味着修改其中之一,会影响另一个

torch.Tensor(ndarray)

依据ndarray创建一个张量,同以上方法不同的是,二者不共用内存

Tensor 操作
  • numpy()

Tensor转换成numpy

  • unsqueeze(dim)

类似与numpy.expand_dims, 对张量扩维

d 
  • repeat(dim1, dim2......)

依旧每一维需要拷贝的次数,对数据进行扩增

>>
  • cat([Tensro], dim)

对张量按照dim进行拼接,类似于numpy.concatenate。也就是除了dim,需要合并矩阵的其他维度需要保持一致。

dt 
  • 类型转换(long, int, bool)
  • 数值操作(abs, abs_)

一般数值操作接口,都会对应一个带下划线的相同功能的接口。唯一不同,带下划线的是inplace的,而不带下划线的则返回一个新的张量。

Kmeans简单实现

有以上基础之后,来简单的实现下kmeans算法。

kmean算法很简单

  1. 随机选择k个样本点作为初始中心点。
  2. 计算样本到所有k个中心点的距离,距离最近的标记成对应的类别。
  3. 计算新的中心点,返回步骤二,直到所有样本点标记不再变化。

具体实现如下。

def 

随机生成两组数据,作图如下

import 

v2-845a3804d8d9011fffc07ce4cb3a5aaa_b.jpg

下篇目标,从零实现全连接神经网络。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值