1. 代码如下: #!/usr/bin/env python #! _*_ coding:UTF-8 _*_ import numpy as np import theano.tensor as T import theano x = T.dmatrix('x') # 定义一个激励函数 s = 1 / (1 + T.exp(-x)) logistic = theano.function([x], s) print logistic([[0, 1], [-2, -3]]) # 一个函数输出多个变量…
1. 定义 激励函数通常用于隐藏层,是将特征值进行过滤或者激活的算法 2.常见的激励函数 1. sigmoid (1)sigmoid() (2)ultra_fast_sigmoid() (3)hard_sigmoid() 2. others (1) softplus() (2)softmax() (3)relu() (4)binary_crossentropy() (5)categorical_crossentropy() (6)h_softmax() 3. 应用场景 (1)隐藏层:relu,…
如下图所示(回归的过拟合问题):如果机器学习得到的回归为下图中的直线则是比较好的结果,但是如果进一步控制减少误差,导致机器学习到了下图中的曲线,则100%正确的学习了训练数据,看似较好,但是如果换成另外一批数据,则不能较好的反应数据,造成过大的误差,这就是过拟合问题 再看下图这是分类问题的过拟合问题 2. 正规化方法 (1)l1正规化:使用权重绝对值和的方式惩罚误差 (2)l2正规化:使用权重平方和的方式惩罚误差 3. 代码实现: from __future__ import print_fun…
1. 代码如下: #!/usr/bin/env python #! _*_ coding:UTF-8 _*_ import numpy as np import theano.tensor as T import theano class Layer(object): ''' 定义一个神经层 ''' def __init__(self, inputs, in_size, out_size, activation_function=None): '''神经层的初始化方法''' self.W = t…
keras的backend包括tensorflow和theano,tensorflow只能在macos和linux上运行,theano可以在windows,macos及linux上运行 1. 使用配置文件配置keras的backend vim ~/.keras/keras.json 内容如下: { "epsilon": 1e-07, "floatx": "float32", "image_data_format": "…
1. 为何保存神经网络 保存神经网络指的是保存神经网络的权重W及偏置b,权重W,和偏置b本身是一个列表,将这两个列表的值写到列表或者字典的数据结构中,使用pickle的数据结构将列表或者字典写入到文件中,保存神经网络只须保存权重W和偏置b,神经网络的结构下次再次定义为一样的,只需从文件中加载权重W和偏置b参数即可,无需重新训练神经网络 2. 代码实现: from __future__ import print_function import numpy as np import theano i…
1. 代码实现 from __future__ import print_function import numpy as np import theano import theano.tensor as T def compute_accuracy(y_target, y_predict): correct_prediction = np.equal(y_predict, y_target) accuracy = np.sum(correct_prediction)/len(correct_p…
1.代码实现 from __future__ import print_function import theano import theano.tensor as T import numpy as np import matplotlib.pyplot as plt class Layer(object): def __init__(self, inputs, in_size, out_size, activation_function=None): self.W = theano.shar…
1. 代码实现 from __future__ import print_function import theano import theano.tensor as T import numpy as np import matplotlib.pyplot as plt class Layer(object): def __init__(self, inputs, in_size, out_size, activation_function=None): self.W = theano.sha…
1. 代码实现 #!/usr/bin/env python #! _*_ coding:UTF-8 _*_ import numpy as np import theano.tensor as T import theano if __name__ == "__main__": # 用一个累加器来测试共享变量 state = theano.shared(np.array(0, dtype=np.float64), 'state') inc = T.scalar('inc', dtype…
1. 代码实现如下: #!/usr/bin/env python #! _*_ coding:UTF-8 _*_ # 导入numpy模块,因为numpy是常用的计算模块 import numpy as np # 导入theano的矢量 import theano.tensor as T # 导入theano的函数定义 from theano import function # 导入theano的结果的计算公式查看 from theano import pp if __name__ == "__m…
1.代码实战 #!/usr/bin/env python #! _*_ coding:UTF-8 _*_ # 导入numpy import numpy as np np.random.seed(1337) # 导入验证码图片数据集 from keras.datasets import mnist from keras.utils import np_utils # 导入kearas的模型 from keras.models import Sequential # 导入keras的层和激励函数 f…
1. 代码实战 #!/usr/bin/env python #!_*_ coding:UTF-8 _*_ from sklearn import datasets from sklearn.linear_model import LinearRegression import matplotlib.pyplot as plt # 从内置训练数据集中加载房价数据 loaded_data = datasets.load_boston() data_X = loaded_data.data data_…
1. 机器学习的分类 (1)有监督学习(包括分类和回归) (2)无监督学习(包括聚类) (3)强化学习 2. 安装 (1)安装python (2)安装numpy >=1.6.1 (3)安装scipy >= 0.9 (4)安装scikit-learn, 使用命令pip install scikit-learn…
1. 代码实战 #!/usr/bin/env python #!_*_ coding:UTF-8 _*_ import numpy as np # 这句话不知道是什么意思 np.random.seed(1337) from keras.models import Sequential from keras.layers import Dense import matplotlib.pyplot as plt # 创建一些训练数据 # 生成-1 到 1 之间的float64的200个数的列表 X…
1. 过拟合问题可以通过调整机器学习的参数来完成,比如sklearn中通过调节gamma参数,将训练损失和测试损失降到最低 2. 代码实现(显示gamma参数对训练损失和测试损失的影响) from __future__ import print_function from sklearn.learning_curve import validation_curve from sklearn.datasets import load_digits from sklearn.svm import S…
1. 什么是过拟合问题 所谓过拟合问题指的是使用训练样本进行训练时100%正确分类或规划,当使用测试样本时则不能正确分类和规划 2. 代码实战(模拟过拟合问题) from __future__ import print_function from sklearn.learning_curve import learning_curve from sklearn.datasets import load_digits from sklearn.svm import SVC import matpl…
1. 什么是交叉验证 所谓交叉验证指的是将样本分为两组,一组为训练样本,一组为测试样本:对于哪些数据分为训练样本,哪些数据分为测试样本,进行多次拆分,每次将整个样本进行不同的拆分,对这些不同的拆分每个拆分都有一个打分或者损失,将这些打分或者损失进行平均形成一个平均打分或者平均损失. 2. 不使用交叉验证(即没有对样本进行多次不同的分组) 例如: X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=4) kn…
1.代码实战 #!/usr/bin/env python #!_*_coding:UTF-8 _*_ import numpy as np from sklearn import preprocessing from sklearn.cross_validation import train_test_split from sklearn.datasets.samples_generator import make_classification from sklearn.svm import S…
1.代码实战 #!/usr/bin/env python #!_*_ coding:UTF-8 _*_ from sklearn import datasets from sklearn.linear_model import LinearRegression import matplotlib.pyplot as plt # 从内置训练数据集中加载房价数据 loaded_data = datasets.load_boston() data_X = loaded_data.data data_y…
1. 代码实战 #!/usr/bin/env python #!_*_ coding:UTF-8 _*_ import numpy as np from sklearn import datasets from sklearn.cross_validation import train_test_split from sklearn.neighbors import KNeighborsClassifier # 载入内置训练数据集 iris = datasets.load_iris() # 这时…
1.代码实战 #!/usr/bin/env python #! _*_ coding:UTF-8 _*_ import numpy as np np.random.seed(1337) # for reproducibility from keras.datasets import mnist from keras.utils import np_utils from keras.models import Sequential from keras.layers import Dense, A…
1. 安装步骤 (1)确保已经安装了python2或者python3 (2)安装numpy,python2使用pip2 install numpy, python3则使用pip3 install numpy (3)安装scipy,python2使用pip2 install scipy,python3则使用pip3 install scipy (4)安装keras,python2使用pip2 install keras,python3则使用pip3 install keras 如下结果: (ven…
莫烦视频网址 这个代码实现了预测和可视化 import os # third-party library import torch import torch.nn as nn import torch.utils.data as Data import torchvision import matplotlib.pyplot as plt # torch.manual_seed() # reproducible # Hyper Parameters EPOCH = # train the tra…
各种优化器的比较 莫烦的对各种优化通俗理解的视频 import torch import torch.utils.data as Data import torch.nn.functional as F from torch.autograd import Variable import matplotlib.pyplot as plt # 超参数 LR = 0.01 BATCH_SIZE = EPOCH = # 生成假数据 # torch.unsqueeze() 的作用是将一维变二维,torc…
import torch from torch.autograd import Variable import matplotlib.pyplot as plt torch.manual_seed() # fake data x = torch.unsqueeze(torch.linspace(-,,),dim=) y = x.pow() + 0.2 * torch.rand(x.size()) x, y = Variable(x,requires_grad=False), Variable(y…
1. sigmod函数 函数公式和图表如下图     在sigmod函数中我们可以看到,其输出是在(0,1)这个开区间内,这点很有意思,可以联想到概率,但是严格意义上讲,不要当成概率.sigmod函数曾经是比较流行的,它可以想象成一个神经元的放电率,在中间斜率比较大的地方是神经元的敏感区,在两边斜率很平缓的地方是神经元的抑制区. 当然,流行也是曾经流行,这说明函数本身是有一定的缺陷的. 1) 当输入稍微远离了坐标原点,函数的梯度就变得很小了,几乎为零.在神经网络反向传播的过程中,我们都是通过微分…
#!/usr/bin/env python #! _*_ coding:UTF-8 _*_ from Queue import Queue import time que = Queue() time_begin = time.time() # 如果a+b+c=1000, 且a^2+b^2=c^2,a,b,c为自然数,求出a,b,c所有的组合 # 使用枚举法计算结果 for a in range(1001): for b in range(1001): for c in range(1001):…
1.要点 Torch 中提供了一种帮你整理你的数据结构的好东西, 叫做 DataLoader, 我们能用它来包装自己的数据, 进行批训练. 而且批训练可以有很多种途径. 2.DataLoader DataLoader 是 torch 给你用来包装你的数据的工具. 所以你要讲自己的 (numpy array 或其他) 数据形式装换成 Tensor, 然后再放进这个包装器中. 使用 DataLoader 有什么好处呢? 就是他们帮你有效地迭代数据, 举例: import torch import t…