深度学习常用库

1. Pandas

1.1. 对整体做映射

对于pd.Series类型,调用apply()函数

对于pd.DataFrame类型,调用applymap()函数

1.2. 转换pd.Series类型

调用astype()函数

当Series的一列整数中存在若干float值,则整体一列都为float类型,需要用astype()修正。

import pandas as pd

# 创建一个示例的 DataFrame
data = {'A': [1, 2.0, 3],
        'B': [4, 5, 6]}
df = pd.DataFrame(data)

# 打印 DataFrame
print(df)

当Series中存在Nan值时,就会出现astype()函数报错。此时需要先用fillna()函数替换空值,参数为希望替换成的值。

1.3. 按行列读取df

通过iloc[:, :],输入行列索引即可

import pandas as pd

# 创建一个示例的 DataFrame
data = {'A': [1, 2, 3],
        'B': [4, 5, 6]}
df = pd.DataFrame(data)
print(df)

# 或者通过索引读取列
column_A = df.iloc[0, :]  # 通过索引读取第 0 行
column_B = df.iloc[1, :]  # 通过索引读取第 1 行

# 打印读取到的列数据
print("Column A:")
print(type(column_A))

print("Column B:")
print(column_B)

1.4. 获取每一列的方差

直接通过var()函数

import pandas as pd

df = pd.DataFrame({"A": [1, 2, 3], "B": [4, 5, 6]})

# 计算每一列的方差
variance = df.var()

# 打印结果
print(variance)

1.5. 对每一列做 0-1 normalization

数据帧的默认操作都是对列做操作。

import pandas as pd

df = pd.DataFrame({"A": [1, 2, 3], "B": [4, 5, 6]})

# 对每一列应用最小-最大缩放
df_normalized = (df - df.min()) / (df.max() - df.min())

# 显示结果
print(df_normalized)

1.6. 获取数据帧的表头 

直接通过columns()函数获取。

也可以通过columns属性直接重新修改表头。

1.7. pd.Series排序 

直接通过sort_values()函数原地排序。

1.8. 去除空值 

df最常用的两个去除空值的方法:

dropna()函数

fillna()函数(用某个值替代)

1.9. 对数据帧进行统计

可以通过describe()函数,获取每一列的最小值,最大值,均值,标准差,first-quartile,中位数,third-quartile。

1.10. 读取excel文件

可以通过pd.read_excel直接读取excel文件。

1.11. 索引某一列的值

可以通过pd.(列表头)直接索引列的值,返回类型为pd.Series

train_data.SalePrice

2. Torch

2.1. 生成0-1间的随机张量

通过torch.rand()函数即可,其中size参数为输出的张量大小。

2.2. torch.rand和torch.randn

torch.rand是生成0-1间的随机小数,torch.randn是生成标准正态分布。

2.3. 初始化参数:apply与nn.init

apply是模型可以调用的一个参数,接受一个函数作为参数,本质上是一个映射操作,对该模型中的每个层做函数的映射。

def init_weights(layer):
    if isinstance(layer, nn.Linear):
        nn.init.normal_(layer.weight, std=0.01)

net.apply(init_weights)

 也可以不对每个层做初始化的映射操作,转而对整个模型做初始化操作。

nn.init.xavier_uniform_(model.weight)

2.4. backward函数的gradient参数

下图是源代码中的解释:

换言之,调用backward函数必须要求是一个标量。为了对一个张量调用backward函数,必须先将其转换为张量,gradient参数就是设置在转换为张量时所需乘以的权重参数。 

x = torch.arange(-8.0, 8.0, 0.1, requires_grad=True)
y = torch.sigmoid(x)
y.backward(torch.ones_like(x))

例如在以上的例子中,x是一个shape为(160)的张量,通过指定gradient参数同样为一个shape为(160)值全为1的张量作为权重,二者相乘,再进行反向传播。

注意这里计算的是哈达玛积而不是叉乘。

因此,以上这段代码是等效于以下这段代码的。

x = torch.arange(-8.0, 8.0, 0.1, requires_grad=True)
y = torch.sigmoid(x)
y.sum().backward()

3. 模型操作

3.1. torch.hub.load报错urllib.error.HTTPError: HTTP Error 403: rate limit exceeded

在load函数前加以下代码:

torch.hub._validate_not_a_forked_repo = lambda a, b, c: True

解决方案来源:

https://blog.csdn.net/u013685264/article/details/133796206?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171976464516800225586230%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=171976464516800225586230&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-133796206-null-null.142^v100^pc_search_result_base5&utm_term=HTTPError%3A%20HTTP%20Error%20403%3A%20rate%20limit%20exceeded&spm=1018.2226.3001.4187​​​​​​​

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值