<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Lefenger]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/AbstractSky</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; AbstractSky]]></copyright><item><title><![CDATA[Compute Shader in Unity Part2 ——Texture]]></title><link>https://blog.youkuaiyun.com/AbstractSky/article/details/83055124</link><guid>https://blog.youkuaiyun.com/AbstractSky/article/details/83055124</guid><author>AbstractSky</author><pubDate>Mon, 15 Oct 2018 11:48:29 +0800</pubDate><description><![CDATA[Texture 在Compute Shader 中算是一个特别重要的应用了。

其实原理什么的都和上一篇说的一样。

下面说一些不一样的。
 


#pragma kernel CSMain
 
RWTexture2D&amp;lt;float4&amp;gt; Result;

[numthreads(8,8,1)]
void CSMain (uint2 id : SV_DispatchThreadID)
{
...]]></description><category></category></item><item><title><![CDATA[Compute Shader in Unity   Part1]]></title><link>https://blog.youkuaiyun.com/AbstractSky/article/details/83028003</link><guid>https://blog.youkuaiyun.com/AbstractSky/article/details/83028003</guid><author>AbstractSky</author><pubDate>Fri, 12 Oct 2018 17:12:46 +0800</pubDate><description><![CDATA[Compute Shader 是为了在Unity中使用GPGPU，即通用目的图形计算单元，它独立于渲染管线，通用目的也说明了它可以用于多种目的，与CPU相比，GPU的优势在于多线程并行计算，当你想对大量数据进行相同的计算的时候，会快很多。

以下是使用说明：
 


#pragma kernel CSMain
#define GroupLength_x 8

RWStructuredBuffer&amp;...]]></description><category></category></item><item><title><![CDATA[Unity 中的半透明]]></title><link>https://blog.youkuaiyun.com/AbstractSky/article/details/79333185</link><guid>https://blog.youkuaiyun.com/AbstractSky/article/details/79333185</guid><author>AbstractSky</author><pubDate>Sat, 17 Feb 2018 22:50:10 +0800</pubDate><description><![CDATA[首先说Unity中的渲染顺序，在Unity中改变渲染顺序的方式有四层，第一层为Camera的depth，第二层为Sorting Layers, Canvas可直接在面板中调节，其他的可能需要在脚本中设置，第三层为shader中的渲染队列，第四层为Pass（Pass的顺序在不同情况下有差别）。再说半透明，最重要的是渲染顺序，只要渲染顺序正确，透明材质是可以不用关闭深度写入的，即使是多个半透明物体也是...]]></description><category></category></item><item><title><![CDATA[Unity中的旋转与万向锁的分析]]></title><link>https://blog.youkuaiyun.com/AbstractSky/article/details/79312731</link><guid>https://blog.youkuaiyun.com/AbstractSky/article/details/79312731</guid><author>AbstractSky</author><pubDate>Sun, 11 Feb 2018 19:11:52 +0800</pubDate><description><![CDATA[将以前写得纸质档发出来  ：）这个扫描宝是真的好用。我上面写得所有结论在Unity中都可以得到验证，各位可以自己试试，这里还得补充一下，一旦不按自身的轴转动时，就不能直接使用基础旋转矩阵了。...]]></description><category></category></item><item><title><![CDATA[Unity中旋转、放缩、平移的顺序对最终结果的影响]]></title><link>https://blog.youkuaiyun.com/AbstractSky/article/details/79307177</link><guid>https://blog.youkuaiyun.com/AbstractSky/article/details/79307177</guid><author>AbstractSky</author><pubDate>Sat, 10 Feb 2018 21:52:49 +0800</pubDate><description><![CDATA[最近在复习曾经学过的东西，为了下次再忘记，还是记录下来。Unity中旋转、放缩、平移的顺序对最终结果的影响是什么？（矩阵在博客中写太麻烦，直接写纸上了）这些都可以在Unity中动手进行验证，但你若是在Inspector中的Transform中直接设置，你会发现总是正确的，因为当你直接给出所有数据时，Unity总是按照正确的顺序进行转换，所以用Translate和Rotate吧，老哥。...]]></description><category></category></item><item><title><![CDATA[Keras中的损失函数与激活函数]]></title><link>https://blog.youkuaiyun.com/AbstractSky/article/details/79156892</link><guid>https://blog.youkuaiyun.com/AbstractSky/article/details/79156892</guid><author>AbstractSky</author><pubDate>Wed, 24 Jan 2018 23:37:09 +0800</pubDate><description><![CDATA[sigmoid与softmax分别为二分类和多分类激活函数，而binary crossentropy和categorical crossentropy分别为二分类和多分类的损失函数。]]></description><category></category></item><item><title><![CDATA[Keras中的Embedding层]]></title><link>https://blog.youkuaiyun.com/AbstractSky/article/details/79156881</link><guid>https://blog.youkuaiyun.com/AbstractSky/article/details/79156881</guid><author>AbstractSky</author><pubDate>Wed, 24 Jan 2018 23:35:30 +0800</pubDate><description><![CDATA[Embedding层一般用于自然语言中的降维，在abcdefg字符串中每个字母都可以用独热编码来表示，但是一旦字符串十分长，独热编码也就会十分长，因而使用Embedding来表示。不仅如此，Embedding也可以用来生成特征矩阵，但事实上也有降维的功能。

Embedding(n_in, n_out, input_length=1, W_regularizer=l2(1e-4))(inp)]]></description><category></category></item><item><title><![CDATA[Python简单函数]]></title><link>https://blog.youkuaiyun.com/AbstractSky/article/details/79156876</link><guid>https://blog.youkuaiyun.com/AbstractSky/article/details/79156876</guid><author>AbstractSky</author><pubDate>Wed, 24 Jan 2018 23:33:09 +0800</pubDate><description><![CDATA[glob模块
glob模块：是一个文件搜索模块，查找文件只用到三个匹配符：””, “?”, “[]”。””匹配0个或多个字符；”?”匹配单个字符；”[]”匹配指定范围内的字符，如：[0-9]匹配数字。
glob（pathname）函数，返回所有匹配的文件路径列表。它只有一个参数pathname，定义了文件路径匹配规则，这里可以是绝对路径，也可以是相对路径。下面是使用glob.glob的例子：]]></description><category></category></item><item><title><![CDATA[Keras中的类与函数]]></title><link>https://blog.youkuaiyun.com/AbstractSky/article/details/79156866</link><guid>https://blog.youkuaiyun.com/AbstractSky/article/details/79156866</guid><author>AbstractSky</author><pubDate>Wed, 24 Jan 2018 23:32:15 +0800</pubDate><description><![CDATA[注意点
1.data_mode的默认值是”channel last“，在构建网络时一定要注意。

models.py
Sequential
该类用于表示一个网络模型,并继承于Model类

save_weights(filepath)  

该函数用于将模型的权重保存为一个h5文件。

image.py
ImageDataGenerator
ImageDataGenerat]]></description><category></category></item><item><title><![CDATA[Numpy中的stack函数]]></title><link>https://blog.youkuaiyun.com/AbstractSky/article/details/79156863</link><guid>https://blog.youkuaiyun.com/AbstractSky/article/details/79156863</guid><author>AbstractSky</author><pubDate>Wed, 24 Jan 2018 23:31:23 +0800</pubDate><description><![CDATA[stack(x,axis=0)
这个函数用于将多个数组合并，其中每个数组的shape都相同，其中axis表示在第几个空间开始进行结合，这样说很难理解，举例说明：
[0,1,2,3] 的shape可看做（1,4）
a =  np.arange(4)
b =  np.arange(4)
c=np.stack((a,b),axis=0)
print(c)
print(c.shape)

输出：
[]]></description><category></category></item><item><title><![CDATA[finetune的意义及用法]]></title><link>https://blog.youkuaiyun.com/AbstractSky/article/details/79138064</link><guid>https://blog.youkuaiyun.com/AbstractSky/article/details/79138064</guid><author>AbstractSky</author><pubDate>Tue, 23 Jan 2018 11:57:18 +0800</pubDate><description><![CDATA[finetune 就是微调的意思，那为什么要微调呢，为什么不能自己重新训练一个网络呢？
因为我们没呢么多样本，没那么高超的技术使神经网络合理且有用，因此我在训练好的模型的基础上只训练其中一个或几个层，而把其他层的参数都冻结起来。
一个正确的训练好的神经网络应该是什么样的呢？
如果将神经网络中的所有过滤器都可视化的话，可以发现，由低到高实际上是不断组合，不断得到更高层次抽象的过程，例如一开始只]]></description><category></category></item><item><title><![CDATA[权值的初始化—-xavier]]></title><link>https://blog.youkuaiyun.com/AbstractSky/article/details/79138040</link><guid>https://blog.youkuaiyun.com/AbstractSky/article/details/79138040</guid><author>AbstractSky</author><pubDate>Tue, 23 Jan 2018 11:54:46 +0800</pubDate><description><![CDATA[对网络中的权值进行合理的初始化是为了保证在训练之前使网络的输出值与目标值的差距不是太大，比如输入（2,3）目标值为4，但网络的输出值为500，那么loss就太大了，训练也就很难进行。因此为了使得网络中信息更好的流动，每一层输出的方差应该尽量相等（在一篇博客上看到的，下面有链接）。
因此就采用xavier来对权重进行初始化，本文只讨论如何使用，不讨论其中原理。
caffe中xavier初始化有三]]></description><category></category></item><item><title><![CDATA[Numpy中的concatenate函数]]></title><link>https://blog.youkuaiyun.com/AbstractSky/article/details/79138023</link><guid>https://blog.youkuaiyun.com/AbstractSky/article/details/79138023</guid><author>AbstractSky</author><pubDate>Tue, 23 Jan 2018 11:53:47 +0800</pubDate><description><![CDATA[concatenate(x,axis=0)
这个函数用于将多个数组进行连接，这与stack函数很容易混淆，他们之间的区别是concatenate会把当前要匹配的元素降一维，即去掉最外面那一层括号。举个例子：
axis=0
a = np.arange(8).reshape(2,2,2)
b = np.arange(8).reshape(2,2,2)
c=np.concatenate((a, b)]]></description><category></category></item><item><title><![CDATA[对神经网络的思考与总结]]></title><link>https://blog.youkuaiyun.com/AbstractSky/article/details/79136746</link><guid>https://blog.youkuaiyun.com/AbstractSky/article/details/79136746</guid><author>AbstractSky</author><pubDate>Tue, 23 Jan 2018 10:33:17 +0800</pubDate><description><![CDATA[1.为什么通过使用过滤器对图像进行卷积操作能够达到识别特征的功能？
答：在神经网络中，数值的高低代表了激活程度的高低，而在卷积操作中，卷积核的数值分布决定了图像像素应该具有怎样的数值分布才能得到高的卷积结果，因此，不同的卷积核都代表着对不同的特征的识别。
有个有意思的地方是，以前的传统图像识别是人工选择卷积核来对图片进行特征提取，而现在是神经网络通过训练来决定卷积核。
并且随着网络的深入，卷]]></description><category></category></item><item><title><![CDATA[Batch Normalization层]]></title><link>https://blog.youkuaiyun.com/AbstractSky/article/details/79136727</link><guid>https://blog.youkuaiyun.com/AbstractSky/article/details/79136727</guid><author>AbstractSky</author><pubDate>Tue, 23 Jan 2018 10:31:18 +0800</pubDate><description><![CDATA[Batch Normalization层


我们可以通过标准化输入来避免网络中局部数据十分大或十分小（不在同一个数值范围），同时我们也需要标准化激活函数的输出来保证网络的稳定。

所有网络中都应该使用BN层，他能使网络块10倍,因为学习率可以调大了，且由于不会出现某个值十分大或十分小的情况，曾经许多不能的网络也都可以训练了，

BN能够很好的预防过拟合，因此可以减少Dropout的]]></description><category></category></item><item><title><![CDATA[Tricks]]></title><link>https://blog.youkuaiyun.com/AbstractSky/article/details/79136708</link><guid>https://blog.youkuaiyun.com/AbstractSky/article/details/79136708</guid><author>AbstractSky</author><pubDate>Tue, 23 Jan 2018 10:30:05 +0800</pubDate><description><![CDATA[1.避免过拟合的方法
使用dropout。
增大训练数据集
在损失函数中添加正则项
数据增广
即对图片进行旋转、拉伸等操作来倍增样本数量。
Batch Normalization层
在每个卷积层或全连接层后面加入Batch Normalization层。
2.提升最终准确率的普遍方法
将多个模型的结果求平均值，作为最后的结果
我们可能为了更好的结果不断更改模型，但我们可以对这些]]></description><category></category></item><item><title><![CDATA[Python中的浅拷贝与深拷贝]]></title><link>https://blog.youkuaiyun.com/AbstractSky/article/details/79136700</link><guid>https://blog.youkuaiyun.com/AbstractSky/article/details/79136700</guid><author>AbstractSky</author><pubDate>Tue, 23 Jan 2018 10:29:35 +0800</pubDate><description><![CDATA[别名
a=[1,2,3,4]
b=a
id(a),id(b)

(64619584, 64619584)

a赋值给b，事实上没有创建任何新对象，b的地址和a一样，即b只是a的一个别名。
浅拷贝
a=[1,2,3,[4,5]]
b=a[:]  # or b=list（a）
id(a),id(b)

(64619304, 64620504)

使用工厂函数或切片可进行浅拷贝，此时b为新创建]]></description><category></category></item><item><title><![CDATA[单变量微积分]]></title><link>https://blog.youkuaiyun.com/AbstractSky/article/details/79136657</link><guid>https://blog.youkuaiyun.com/AbstractSky/article/details/79136657</guid><author>AbstractSky</author><pubDate>Tue, 23 Jan 2018 10:27:24 +0800</pubDate><description><![CDATA[1.导数的解释：(1)切线的斜率为导数(2)瞬时变化率即为导数
2.在某点连续指的是在这一点的值与左右极限的值都相等。
3.sinx/x
4.    

5.可导必连连续
证明：


6.使用极限的原因之一是使0可以用x-x0代替（x无限趋于x0），这样一来，0就可以作为除数了。]]></description><category></category></item><item><title><![CDATA[Pyhon与Numpy的不同]]></title><link>https://blog.youkuaiyun.com/AbstractSky/article/details/79136396</link><guid>https://blog.youkuaiyun.com/AbstractSky/article/details/79136396</guid><author>AbstractSky</author><pubDate>Tue, 23 Jan 2018 10:11:03 +0800</pubDate><description><![CDATA[**一**. list的元素可以是不同的类型，而ndarray只能包含同一种类型的元素。

**二**. 切片的返回值所表示的意义不同。

    import numpy as np

    a=np.array([1,2,3,4,5,6])
    b=[1,2,3,4,5,6]

    c=a[:3]
    d= b[:3]
    c[0]=0
    d[0]]></description><category></category></item><item><title><![CDATA[Panda与Numpy中的数据选取]]></title><link>https://blog.youkuaiyun.com/AbstractSky/article/details/79136383</link><guid>https://blog.youkuaiyun.com/AbstractSky/article/details/79136383</guid><author>AbstractSky</author><pubDate>Tue, 23 Jan 2018 10:09:30 +0800</pubDate><description><![CDATA[Pandas中的数据选取主要分为如下方式：      
1. [0]数字索引直接选取
2. ['a']通过名字索引选取
3. [1:] [:3] [::-1] ['a':'c'] 通过切片选取

4. [x
5. [boo]通过boolen矩阵作为mask选取
6. ['a','b'] [1,3,5] 通过Fancy Index选取。

而Numpy中的数据选取与Pandas十分]]></description><category></category></item></channel></rss>