zoukankan      html  css  js  c++  java
  • 2月4日学习记录|2.7日

    1.pytorch入门学习

    https://pytorch.org/tutorials/beginner/blitz/tensor_tutorial.html#sphx-glr-beginner-blitz-tensor-tutorial-py

    这个官方教程还挺好的。可以作为一个手册来查找。

    包括创建对象,对象与numpy的互相转换,对象的+操作,对象转移到GPU上。

    第二个dataloader的教程学到了可以使用dataloader加载数据,自动完成分batch,shuffle,等工作,首先对每个数据集可以继承DataSet类,然后重写__len__,__getitem__函数。另外数据集还可以加transform,做预处理吧。

     2.7日——————————

     1.对pytorch首先定义net,定义cirtetion,optimizer;

     然后进行forward,pred=net(input),也就是进行预测;

    然后loss=cirtetion(pred,label)

    然后累计梯度清0optimizer.zero_grad(),然后反向传播loss.backward()

    然后更新梯度optimizer.step()

     2.torch.nn.NLLLoss

    negative log likelihood loss 是指负的log似然损失。

    https://blog.csdn.net/geter_CS/article/details/84857220

    4.Memory Pinning

     https://blog.csdn.net/tsq292978891/article/details/80454568

    这个在GPU强大的情况下可以这么设置。

    6.晚上对R的学习

    1.在概率曲线上,曲线上的点表示什么意思?横轴表示什么意思?

    (我目前只知道曲线和x轴的面积为1。

    https://www.zhihu.com/question/23237834 在知乎上发现了这个问题:概率密度函数在某一点的值有什么意义?

     也就是说,对于一个概率密度曲线,横轴就是表示实数本身,而曲线上某一个点(x,y)是表示当前的点在取样时被选中的概率,(错了,这个画线的理解是错的,如果曲线上的点是概率的话,那就大错特错了。)曲线上的某一点就相当于概率密度,一个区间[a,b]之间的面积,就是这个区间内的x轴值被随机选中的概率,那么对于正态分布来说,越靠近μ均值的x值被选中的概率就越大!是这个意思,点没有意义,面积才有意义。

    2.对一个分布,如何产生符合分布的值?

    https://blog.csdn.net/bitcarmanlee/article/details/82795137从这篇博客当中,我觉得挺神奇的,原来正态分布居然可以从一个均匀分布来模拟:

    import numpy as np
    from pylab import *
    
    
    def sample():
        x = np.random.rand()  # 两个均匀分布分别为x, y
        y = np.random.rand()
        R = np.sqrt(-2 * np.log(x))
        theta = 2 * np.pi * y
        z0 = R * np.cos(theta)
        #z1 = R * np.sin(theta)
    
        return z0
    
    
    def sampleNtimes():
        list = []
        n = 100000
        for i in range(n):
            x = sample()
            list.append(x)
        y = np.reshape(list, n, 1)
        hist(y, normed=1, fc='c')  # 直方图
    
        x = arange(-4, 4, 0.1)
        plot(x, 1 / np.sqrt(2 * np.pi) * np.exp(-0.5 * x ** 2), 'g', lw=6)  # 标准正态分布
        xlabel('x', fontsize = 24)
        ylabel('p(x)', fontsize = 24)
    
        show()
    
    sampleNtimes()

    由此我就想到,R种生成数据的函数应该和python是一样的,那么我就想查看python中的随机函数,看它是如何实现的,但是非得打开pycharm才能看吗?否则看到的都是说明,而没有源码啊!

    在github上搜numpy也没有什么好的结果。算了,打开pycharm。

     

     居然函数只是一个pass。。。好吧

     https://blog.codinglabs.org/articles/methods-for-generating-random-number-distributions.html

    找到了这个博客,原来想要生成符合分布的随机数是有算法的啊!

    Inverse Ttransform和Acceptance-Rejection两种基础算法

    虽然没看懂,但是第一次知道有数据生成的算法。所以说,在生成一些数据的时候,符合分布的数据,基本上都使用已经存在的包的函数,而不是自己写一个生成服从某一分布的函数了。

  • 相关阅读:
    moment.js常用时间示例,时间管理
    RabbitMQ用户增删及权限控制
    CDN概念基本介绍
    在LinkedIn的 Kafka 生态系统
    发行说明
    Kafka 1.0版本发布
    redis应用场景及实例
    Redis哨兵集群
    redis-订阅与发布
    redis事务
  • 原文地址:https://www.cnblogs.com/BlueBlueSea/p/12261126.html
Copyright © 2011-2022 走看看