专栏首页光城(guangcity)再谈强大的Numpy

再谈强大的Numpy

Cs231n之features及numpy

0.说在前面1.numpy3.features4.作者的话

0.说在前面

今天发现cs231n还差一个features.py未更新,特更,并且更新中间穿插的numpy使用!

1.numpy

取指定位置的精度

In

np.around([-0.6,1.2798,2.357,9.67,13], decimals=0)

Out

看到没,负数进位取绝对值大的!

array([-1.,  1.,  2., 10., 13.])

In

np.around([1.2798,2.357,9.67,13], decimals=1)

Out

array([ 1.3,  2.4,  9.7, 13. ])

In

np.around([1.2798,2.357,9.67,13], decimals=2)

Out

array([ 1.28,  2.36,  9.67, 13.  ])

从上面可以看出,decimals表示指定保留有效数的位数,当超过5就会进位(此时包含5)!

但是,如果这个参数设置为负数,又表示什么?

In

np.around([1,2,5,6,56], decimals=-1)

Out

array([ 0,  0,  0, 10, 60])

发现没,当超过5时候(不包含5),才会进位!-1表示看一位数进位即可,那么如果改为-2呢,那就得看两位!

例如:

In

np.around([1,2,5,50,56,190], decimals=-2)

Out

array([  0,   0,   0,   0, 100, 200])

看到没,必须看两位,超过50才会进位,190的话,就看后面两位,后两位90超过50,进位,那么为200!

计算沿指定轴第N维的离散差值

In

x = np.arange(1 , 16).reshape((3 , 5))

Out

array([[ 1,  2,  3,  4,  5],
       [ 6,  7,  8,  9, 10],
       [11, 12, 13, 14, 15]])

In

np.diff(x,axis=1) #默认axis=1

Out

array([[1, 1, 1, 1],
       [1, 1, 1, 1],
       [1, 1, 1, 1]])

In

np.diff(x,axis=0) 

Out

array([[5, 5, 5, 5, 5],
       [5, 5, 5, 5, 5]])

取整

In

np.floor([-0.6,-1.4,-0.1,-1.8,0,1.4,1.7])

Out

array([-1., -2., -1., -2.,  0.,  1.,  1.])

看到没,负数取整,跟上述的around一样,是向左!

取上限

np.ceil([1.2,1.5,1.8,2.1,2.0,-0.5,-0.6,-0.3])

取上限!找这个小数的最大整数即可!

查找

利用np.where实现小于0的值用0填充吗,大于0的数不变!

In

x = np.array([[1, 0],
       [2, -2],
     [-2, 1]])

Out

array([[ 1,  0],
       [ 2, -2],
       [-2,  1]])

In

np.where(x>0,x,0)

Out

array([[1, 0],
       [2, 0],
       [0, 1]])

3.features

svm

iters = 6000
svm = LinearSVM()
for i in learning_rates:
    for j in regularization_strengths:
        svm.train(X_train_feats,y_train,learning_rate=i,reg=j,num_iters=iters)
        y_train_pred = svm.predict(X_train_feats)
        accu_train = np.mean(y_train == y_train_pred)
        y_val_pred = svm.predict(X_val_feats)
        accu_val = np.mean(y_val == y_val_pred)
        results[(i, j)] = (accu_train, accu_val)

        if best_val < accu_val:
            best_val = accu_val
            best_svm = svm

neural network

results = {}
best_val = -1
best_net = None

learning_rates = [1e-2 ,1e-1, 5e-1, 1, 5]
regularization_strengths = [1e-3, 5e-3, 1e-2, 1e-1, 0.5, 1]

for lr in learning_rates:
    for reg in regularization_strengths:
        net = TwoLayerNet(input_dim, hidden_dim, num_classes)
        # Train the network
        stats = net.train(X_train_feats, y_train, X_val_feats, y_val,
        num_iters=1500, batch_size=200,
        learning_rate=lr, learning_rate_decay=0.95,
        reg= reg, verbose=False)
        val_acc = (net.predict(X_val_feats) == y_val).mean()
        if val_acc > best_val:
            best_val = val_acc
            best_net = net         
        results[(lr,reg)] = val_acc

对比上述两者方法,发现代码差不多,其实就是调参!!!

本文分享自微信公众号 - 光城(guangcity),作者:lightcity

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-11-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • SVM梯度求导及实现

    昨晚看了一部电影,叫做我是马布里,非常正能量,推荐给各位,看完这部电影的总结话是:

    公众号guangcity
  • cs231n之KNN、SVM

    最近在学习cs231n,觉得有点困难,今天抽了一晚上时间来写这篇文章,作为总结。下面一起来看任务一的题目,由于篇幅长,故分成两部分,下节重点softmax!

    公众号guangcity
  • Non-Separable Data And Types of Learning

    6.Learning with Different Protocol f(xn,yn)

    公众号guangcity
  • 核对体系-资损防控(核对篇)

    随着有赞的业务增长,单量与日俱增,业务场景变得越来越复杂,迭代的速度变得更快,出现故障的概率更大,从而产生的资损可能性也变大,这无论对于有赞本身还是对于有赞的商...

    有赞coder
  • 重用CL_CRM_QUERYAUI_RUN_BTIL实现order search

    版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons)

    Jerry Wang
  • 使用CatBoost和NODE建模表格数据对比测试

    来自俄罗斯在线搜索公司Yandex的CatBoost快速且易于使用,但同一家公司的研究人员最近发布了一种基于神经网络的新软件包NODE,声称其性能优于CatBo...

    deephub
  • 数据科学家必读:从零开始用Python构建循环神经网络

    人类不会每听到一个句子就对语言进行重新理解。看到一篇文章时,我们会根据之前对这些词的理解来了解背景。我们将其定义为记忆力。

    华章科技
  • 分类问题样本不均衡常见的解决方法

    分类时,由于训练集合中各样本数量不均衡,导致模型训偏在测试集合上的泛化性不好。解决样本不均衡的方法主要包括两类:(1)数据层面,修改各类别的分布;(2)分类器层...

    CodeInHand
  • numpy: 常用api速查

    JNingWei
  • Windows安装Redis

    在Windows本地服务管理里面,可以看到已经注册并启动了Redis服务,服务执行命令如下:

    十毛

扫码关注云+社区

领取腾讯云代金券