2024 08 14, 2149 今日內容
2024-08-14, 21:49-今日內容
Torch 在apple mac book pro 的M芯片可以用。 cross entropy 如果p是的预测概率是0,会出现log(0)的情况,所以要加上一个很小的数防止这种极端情况我们handle… softmax 容易遇到的问题 数值溢出 one hot encoding 之前一定要把所有的class都找出来,不能随便拿到一些样本和他们的class就开始做 。这样即使… Numpy 里面,或者python 可以一行代码写完的事情,别两行代码写,你看看别人写的: Numpy 里面对于矩阵,可以非常快的max来获取整个矩阵内部的最大的值 在某个conda 环境即使运行pip install 也不会把包安装到别的环境, 不管你是conda install 还是pip… Git 里面的commit hash是什么 GitHub 或者Git 怎么看远程的branch和本地的branch,创建新的branch Tensor.unsqueeze 在torch里面是在某个位置重新插入一个shape是1的维度。 注意插入的是维度也就是shape… Torch里面返回某个tensor在某个dim的size(或者说他的shape,具体在某个dim的shape) Embedding 就是用nn.Embedding 创建embedding的table .f(x)= 在Jupyter notebook显示公式 用$$ zi Cross entropy loss function 交叉熵损失函数和softmax 的组合 来确定预测出的标签和实际标签的概率… sclass Softmax Entropy 是什么 熵
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
Torch 在apple mac book pro 的M芯片可以用。 has_mps = torch.backends.mps.is_built()
t81_558_class_10_1_timeseries.ipynb - Colab
  
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
cross entropy 如果p是的预测概率是0,会出现log(0)的情况,所以要加上一个很小的数防止这种极端情况我们handle… cross entropy 如果p是的预测概率是0,会出现log(0)的情况,所以要加上一个很小的数防止这种极端情况我们handle不了
他是这么写的:

🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
softmax 容易遇到的问题 数值溢出 大家都是这么做的: 减去最大值,不信你可以试试 怎么处理呢:
大家都是这么做的: 减去最大值,不信你可以试试
import numpy as np
def softmax(x): exp_x = np.exp(x - np.max(x, axis=1, keepdims=True)) # 减去最大值防止溢出 return exp_x / np.sum(exp_x, axis=1, keepdims=True)
示例使用
predicted = np.array([[1000, 1001, 1002], [1003, 1004, 1005]]) softmax_pred = softmax(predicted) print(softmax_pred)
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
one hot encoding 之前一定要把所有的class都找出来,不能随便拿到一些样本和他们的class就开始做 。这样即使… one hot encoding 之前一定要把所有的class都找出来,不能随便拿到一些样本和他们的class就开始做 。这样即使做出来的one hot encoding的table 也是不完整的。 你懂了吗。
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
Numpy 里面,或者python 可以一行代码写完的事情,别两行代码写,你看看别人写的:
print(true_label.shape)
row = true_label.shape[0]
column = true_label.shape[1]
row, column = true_label.shape
注释掉的是你写的
别人写的你看看多好多简洁
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
Numpy 里面对于矩阵,可以非常快的max来获取整个矩阵内部的最大的值 num_class = np.max(true_label) 不需要你写两个for 循环了。。。
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
在某个conda 环境即使运行pip install 也不会把包安装到别的环境, 不管你是conda install 还是pip… 在某个conda 环境即使运行pip install 也不会把包安装到别的环境, 不管你是conda install 还是pip install conda 这个envronment 能够handle一切install 他是宏观的。
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
Git 里面的commit hash是什么 你用gitlog 就可以看到之前关于这个repo的所有人提交的commit了 最上面有一个40的字符串的git hush
把他copy下来。 然后如果你想回到这个版本 你就说: git checkout commit-hash
如果你想在这个版本上进行修改 你就说
git checkout -b new-branch-name commit-hash
注意这个checkout 后面的b ,就是在帮你生成一个新的branch ,并且是基于这个commit-hash的内容的branch wow 牛逼了
看这个hash了吗 很长一串 黄色的就是了。 
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
GitHub 或者Git 怎么看远程的branch和本地的branch,创建新的branch 看remote的: git branch -r
看本地的: git branch
-b 就可以帮你创建新的branch了
例子: Git checkout -b new
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
Tensor.unsqueeze 在torch里面是在某个位置重新插入一个shape是1的维度。 注意插入的是维度也就是shape… Tensor.unsqueeze 在torch里面是在某个位置重新插入一个shape是1的维度。 注意插入的是维度也就是shape 不是数据 注意插入的不是数据,而是维度
怎么思考这个问题。 首先看到不管是什么样的 数据,我们只要看到这个unsqueeze的名字,我们就必须要提取他的shape 然后在shape上,找到unsqueeze 给定的位置, 然后找到这个位置后,写一个1进去,也就是增加shape 是1 在这个维度,然后后面的shape不变,全写在1后面。
这就是为什么要改变shape而不是data的原因。
这个例子你要看清:你看x的shape是(3, ) 他要我我们插1个shape在0位置,所以shape会变成(1, 3) 然后数据就变成了新的shape 你懂了吗
import torch
创建一个1D张量
x = torch.arange(3) # tensor([0, 1, 2]) print(x)
在第0个位置插入一个新的维度
x_unsqueezed = x.unsqueeze(0) print(x_unsqueezed) # 输出: tensor([[0, 1, 2]])
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
Torch里面返回某个tensor在某个dim的size(或者说他的shape,具体在某个dim的shape) 只要他是tensor,就可以呼叫: 他.size(dim=啥啥啥)这个dim可以是任何你想要获取的维度,比如说0, 或者1 或者你也可以写-1
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
Embedding 就是用nn.Embedding 创建embedding的table 然后我们给他idx 这些idx 就是不同的B, batch, 和不同的T 的idx。 每一个元素代表的就是一个char,或者一个class。 所以他们每个的idx 肯定是小于C的。 也就是最大能够取到C-1 。
我们的Batch对他根本不会产生影响,因为我们会进行flat操作。 吧B T 变成B* T, 这样就有B * T个样本。每个样本都是真实的,我们利用他真实的C的idx ,从embedding table里面选取,也就是把1个class扩展成为具有新的embedding 数量的class。 也就是给他扩展维度。
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
.f(x)= 
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
在Jupyter notebook显示公式 用\(显示很多汗 用\) 公式$$
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
zi 
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
Cross entropy loss function 交叉熵损失函数和softmax 的组合 来确定预测出的标签和实际标签的概率… Cross entropy loss function 交叉熵损失函数和softmax 的组合 来确定预测出的标签和实际标签的概率差多少(categorical 会被one hot encode,所以是可以用概率来表示的)
cross entropy:他就是cost
讲这个问题讲得很清楚的网站: https://www.youtube.com/watch?v=6ArSys5qHAU
因为exponential function的导数就是他本身,然后log(e**x)) 就是x 所以才会用到cross entropy 的这个方法,也就是 通过抵消e,来让我们softmax算出来的概率直接就等于实际概率了。 Softmax的函数是这样的: 
用cross entropy 计算出的cost function 是这样的:  其中a就是每个neuron的activation,在最后一层,也代表了每个neuron预测的概率,也对应了每个标签可能的概率。 大部分的真实y都会被one hot encoding , c 就直接sum(-log(ai))
#cost_function #cross_entropy #softmax
Log 的一个重要特征,就是概率(0-1)之间的数字,他算出来的value都是负,所以cross entropy 才会在log前面加上减

🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
sclass 
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
Softmax
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
Entropy 是什么 熵 就是没有秩序的水平。不确定性越高,entropy 就越高 quanta 量子
#匯總今日內容