目录
深度学习框架
Theano
TensorFlow
MXNet
Keras
PyTorch
Caffe
搭建图像识别开发环境
Anaconda
pip可以在任何环境中安装python包;
conda可以在conda环境中安装任何语言包。
conda
- 包的安装和管理
安装
conda install numpy
卸载
conda remove package_name
更新
conda update package_name
更新所有包
conda update --all
列出已安装的包
conda list
不知道找的包的确切名称
conda search search_term
如: conda search beautifulsoup
- 环境管理
创建不同的环境,每个环境是相互独立、互不干预的
%创建一个代码运行的环境:
conda create -n basic_env python=3.7 #创建一个名为basic_env的环境
source activate basic_env #激活这个环境——Linux和macOS代码
activate basic_env #激活这个环境——Windows代码
%创建另一个代码运行的环境:
conda create -n imgrecognition_env python=3.7 #创建一个名为imgrecognition_env的环境
source activate imgrecognition_env #激活这个环境——Linux和macOS代码
activate imgrecognition_env #激活这个环境——Windows代码
Pytorch的下载与安装
Numpy使用详解
Numpy(Numerical Python)是高性能科学计算和数据分析的基础包,提供了矩阵运算的功能。
创建数组
import numpy as np
vector = np.array([1,2,3,4]) #导入向量
matrix = np.array([[1,'Tim'],[2,'Joey'],[3,'Johnny'],[4,'Frank']]) #导入矩阵
创建numpy数组
a = np.zeros(10)
a.dtype
a = np.zeros(10,dtype=int)
a
np.zeros(shape=(3,4))
a = np.ones((3,4))
np.full((3,5),121) #创建了一个三行五列的矩阵,默认值为121
np.arange(0,20,2) #[0,20) 步长=2
np.linspace(0,10,5) #[0,10] 5等分
np.random.randint(0,10,10)
np.random.randint(0,5,size=5)
np.random.randint(4,9,size=(3,5))
seed的作用:如果不想玩每次生成的随机数都不固定,那么用np.random.seed(1),随机种子使用数字1记录,这以后只要是用随机种子1生成的随机数就都是固定的。
np.random.random(10) #生成0-1之间的浮点数,向量的长度为10
np.random.random((2,4)) #生成0-1之间的浮点数,二行四列的矩阵
np.random.normal(loc=0,scale=1,size=shape) #正态分布 均值;标准差;类型
获取numpy属性
a = np.arange(15).reshape(3,5)
a.shape #获取数组的行数与列数
a.ndim #获取numpy数组的维度
a.reshape(15,-1) #只要15行,列由计算机自己计算
a.reshape(-1,15) #只要15列,行由计算机自己计算
Numpy数组索引
import numpy as np
matrix = np.array([[1,2,3],[20,30,40]])
print(matrix[0,1])
切片
import numpy as np
matrix = np.array([
[1,2,3],
[20,30,40],
[35,45,55]
])
print(matrix[:,1])
print(matrix[:,0:2])
print(matrix[1:3,:])
print(matrix[1:3,0:2])
Numpy中的矩阵运算
加减乘除
import numpy as np
myones = np.ones([3,3])
myeye = np.eye(3) #对角线值为1,其余值都为0的三行三列矩阵
myones-myeye
矩阵之间的点乘
import numpy as np
a = np.array([[1,2,3],[4,5,6]])
b = np.array([[1,2],[3,4],[5,6]])
print(a.shape[1]==b.shape[0])
print(a.dot(b))
矩阵的转置
print(b.T)
矩阵的逆
import numpy as np
import numpy.linalg as lg
A = np.array([[0,1],[2,3]])
invA = lg.inv(A)
print(invA)
print(A.dot(invA))
数据类型转换
vector = np.array(["1","2","3"])
vector = vector.astype(float)
vector
Numpy的统计计算方法
vector = np.array([5,10,15,20])
vector.sum()
matrix = np.array([
[5,10,15],
[20,10,30],
[35,40,45]])
matrix.sum(axis=1)
matrix.sum(axis=0)
Numpy中的arg运算
argmax求一个array中最大值的下标;argmin求一个array中最小值的下标
np.argmax([1,2,6,3,2])
np.argmin([1,2,6,3,2])
x = np.arange(15)
print(x)
np.random.shuffle(x) #随机打乱
print(x)
sx = np.argsort(x) #从小到大排序,返回索引值
print(sx)
Fancylndexing
x = np.arange(15)
ind = [3,5,8] #返回第3、5、8个元素
print(x[ind])
x = np.arange(15)
np.random.shuffle(x)
ind = np.array([[0,2],[1,3]])
print(x)
print(x[ind])
x = np.arange(16)
X = x.reshape(4,-16)
row = np.array([0,1,2])
col = np.array([1,2,3])
print(X[row,col]) #取三个点,(0,1),(1,2),(2,3)
print(X[1:3,col])
Numpy数组比较
import numpy as np
matrix = np.array([
[5,10,15],
[20,25,30],
[35,40,45]
])
m = (matrix ==25)
print(m)
import numpy as np
matrix = np.array([
[5,10,15],
[20,25,30],
[35,40,45]
])
second_column_25 = (matrix[:,1]==25)
print(second_column_25)
print(matrix[second_column_25,:])