相关文章:
【一】tensorflow安装、常用python镜像源、tensorflow 深度学习强化学习教学
【二】tensorflow调试报错、tensorflow 深度学习强化学习教学
【三】tensorboard安装、使用教学以及遇到的问题
【四】超级快速pytorch安装
trick1---实现tensorflow和pytorch迁移环境教学
tf.matmul() 和tf.multiply() 的区别
1.tf.multiply()两个矩阵中对应元素各自相乘 格式: tf.multiply(x, y, name=None) 参数: x: 一个类型为:half, float32, float64, uint8, int8, uint16, int16, int32, int64, complex64, complex128的张量。 y: 一个类型跟张量x相同的张量。 返回值: x * y element-wise. 注意: (1)multiply这个函数实现的是元素级别的相乘,也就是两个相乘的数元素各自相乘,而不是矩阵乘法,注意和tf.matmul区别。 (2)两个相乘的数必须有相同的数据类型,不然就会报错。 2.tf.matmul()将矩阵a乘以矩阵b,生成a * b。 格式: tf.matmul(a, b, transpose_a=False, transpose_b=False, adjoint_a=False, adjoint_b=False, a_is_sparse=False, b_is_sparse=False, name=None) 参数: a: 一个类型为 float16, float32, float64, int32, complex64, complex128 且张量秩 > 1 的张量。 b: 一个类型跟张量a相同的张量。 transpose_a: 如果为真, a则在进行乘法计算前进行转置。 transpose_b: 如果为真, b则在进行乘法计算前进行转置。 adjoint_a: 如果为真, a则在进行乘法计算前进行共轭和转置。 adjoint_b: 如果为真, b则在进行乘法计算前进行共轭和转置。 a_is_sparse: 如果为真, a会被处理为稀疏矩阵。 b_is_sparse: 如果为真, b会被处理为稀疏矩阵。 name: 操作的名字(可选参数) 返回值: 一个跟张量a和张量b类型一样的张量且最内部矩阵是a和b中的相应矩阵的乘积。 注意: (1)输入必须是矩阵(或者是张量秩 >2的张量,表示成批的矩阵),并且其在转置之后有相匹配的矩阵尺寸。 (2)两个矩阵必须都是同样的类型,支持的类型如下:float16, float32, float64, int32, complex64, complex128。 引发错误: ValueError: 如果transpose_a 和 adjoint_a, 或 transpose_b 和 adjoint_b 都被设置为真
np.arange()用法
np.arange()
函数返回一个有终点和起点的固定步长的排列,如1,2,3,4,5,起点是1,终点是6,步长为1。
参数个数情况: np.arange()函数分为一个参数,两个参数,三个参数三种情况
1)一个参数时,参数值为终点,起点取默认值0,步长取默认值1。
2)两个参数时,第一个参数为起点,第二个参数为终点,步长取默认值1。
3)三个参数时,第一个参数为起点,第二个参数为终点,第三个参数为步长。其中步长支持小数
代码语言:javascript复制#一个参数 默认起点0,步长为1 输出:[0 1 2]
a = np.arange(3)
#两个参数 默认步长为1 输出[3 4 5 6 7 8]
a = np.arange(3,9)
#三个参数 起点为0,终点为3,步长为0.1 输出[ 0. 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1. 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2. 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9]
a = np.arange(0, 3, 0.1)
loc和iloc函数用法
loc函数:通过行索引 "Index" 中的具体值来取行数据(如取"Index"为"A"的行)
iloc函数:通过行号来取行数据(如取第二行的数据)
- 利用loc、iloc提取行数据
import numpy as np
import pandas as pd
#创建一个Dataframe
data=pd.DataFrame(np.arange(16).reshape(4,4),index=list('abcd'),columns=list('ABCD'))
In[1]: data
Out[1]:
A B C D
a 0 1 2 3
b 4 5 6 7
c 8 9 10 11
d 12 13 14 15
#取索引为'a'的行
In[2]: data.loc['a']
Out[2]:
A 0
B 1
C 2
D 3
#取第一行数据,索引为'a'的行就是第一行,所以结果相同
In[3]: data.iloc[0]
Out[3]:
A 0
B 1
C 2
D 3
- 利用loc、iloc提取列数据
In[4]:data.loc[:,['A']] #取'A'列所有行,多取几列格式为 data.loc[:,['A','B']]
Out[4]:
A
a 0
b 4
c 8
d 12
In[5]:data.iloc[:,[0]] #取第0列所有行,多取几列格式为 data.iloc[:,[0,1]]
Out[5]:
A
a 0
b 4
c 8
d 12
3.利用loc、iloc提取指定行、指定列数据
代码语言:javascript复制In[6]:data.loc[['a','b'],['A','B']] #提取index为'a','b',列名为'A','B'中的数据
Out[6]:
A B
a 0 1
b 4 5
In[7]:data.iloc[[0,1],[0,1]] #提取第0、1行,第0、1列中的数据
Out[7]:
A B
a 0 1
b 4 5
4.利用loc、iloc提取所有数据
代码语言:javascript复制In[8]:data.loc[:,:] #取A,B,C,D列的所有行
Out[8]:
A B C D
a 0 1 2 3
b 4 5 6 7
c 8 9 10 11
d 12 13 14 15
In[9]:data.iloc[:,:] #取第0,1,2,3列的所有行
Out[9]:
A B C D
a 0 1 2 3
b 4 5 6 7
c 8 9 10 11
d 12 13 14 15
5.利用loc函数,根据某个数据来提取数据所在的行
代码语言:javascript复制In[10]: data.loc[data['A']==0] #提取data数据(筛选条件: A列中数字为0所在的行数据)
Out[10]:
A B C D
a 0 1 2 3
In[11]: data.loc[(data['A']==0)&(data['B']==2)] #提取data数据(多个筛选条件)
Out[11]:
A B C D
a 0 1 2 3
In[12]: data[data['A']==0] #dataframe用法
In[13]: data[data['A'].isin([0])] #isin函数
In[14]: data[(data['A']==0)&(data['B']==2)] #dataframe用法
In[15]: data[(data['A'].isin([0]))&(data['B'].isin([2]))] #isin函数
Out[15]:
A B C D
a 0 1 2 3
tf.expand_dims()使用
代码语言:javascript复制tf.expand_dims(
input,
axis=None,
name=None,
dim=None
)
所实现的功能是给定一个input,在axis轴处给input增加一个为1的维度。
demo:
代码语言:javascript复制# 't2' is a tensor of shape [2, 3, 5]
tf.shape(tf.expand_dims(t2, 0)) # [1, 2, 3, 5]
因为axis=0所以矩阵的维度变成1*2*3*5。
同理如果axis=2,矩阵就会变为2*3*1*5。
0其实代表的第一维度,那么1代表第二维度,2代表第三维度。以此类推。