CS231n作业笔记1.1: KNN中的距离矩阵vectorize的实现方法(无循环)

CS231n简介

详见 CS231n课程笔记1:Introduction
注:斜体字用于注明作者自己的思考,正确性未经过验证,欢迎指教。

作业笔记

KNN部分主要关注与距离矩阵的计算。输入是X_test[test_num,D], X_train[train_num,D],其中D为特征维度,train_num、test_num分别是训练集以及测试集大小。返回dist[test_num,train_num],其中dist[i,j]为X_test[i]与X_train[j]的L2距离。

1. 2-loop算法


for i in range(test_num):
for j in range(train_num):
dist[i,j] = np.sum(np.square(X_test[i]-X_train[j]))

2. 1-loop算法

这里利用Numpy中A[D1,D]-B[D]结果为C[D1,D],其中C[i]=A[i]-B。
numpy中np.sum有axis用于表示求和的维度。

for i in range(test_num):
dist[i] = np.sum(np.square(X_train-X_test[i]),axis=1)

3. no-loop算法

这里利用numpy的broadcasting性质,例如A=[1,2],

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值