2024 08 03, 2133 今日內容
2024-08-03, 21:33-今日內容
Batch size 是啥意思 一句话的序列,怎么一个一个往后推来做训练数据 training的时候 要保证是random samplized tokenizor validation的重要性 Lambda 的用法 (匿名函数) 字典dictionary的创建 Enumerate 返回的值是可以iterate的,也就是可以用for来处理他的返回value。所以for i, j in enumerate… iPad可以看网页学习,连商场的wifi。mac连自己的热点,ipad在左边,充电线插在右边。iPhone在左边,充电线在左边。… decoding encoding 字符来做chatgpt, 做成字典的样子(正反字典),用enumerate set{}转换成list 切片操作 也就是: 不只有在numpy array时可以用的,python的字符串r和list都可以用 ASCII和utf-8 的区别 Open(文件位置,mode=‘r/w/x’/a, encoding=‘utf-8’) as f: with (python里面的意思) subprocess Wget的用法,主要是从www上面拿一些数据,比如txt或者csv seed Torch
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
Batch size 是啥意思 就是每次都有四条数据 同时进行训练,每一个都是独立的,可以在我们的subprocess上面进行训练
非常简单的例子 如果模型有100条的数据,batchsize是4, 那么我们的模型就会有100/4 = 25个批次。
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
一句话的序列,怎么一个一个往后推来做训练数据  
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
training的时候 要保证是random samplized
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
tokenizor 用来对人们说的话进行编码的手段。
Google用的是sentence piece tokenizor OpenAI 用的是tick token (BPE)(bit pair entokenior) GPT就是用的这个
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
validation的重要性 主要是要提到 防止overfitting
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
Lambda 的用法 (匿名函数) 如果你说某一个variable事一个lambda,那么你就是说它是一个函数。 所以你可以用你的这个variable对一些新的value进行操作!
就是先输入变量, 冒号后面就是利用这两个变量产生的操作:
不用定义return, 也不用放变量在括号里面
add = lambda x, y: x + y
Result = add(3, 5)
我们用它就是因为它简单。 写起来很快
比较难的用法是gpt里面对character进行encoding的用法:
encode = lambda s: [stoi[c] for c in s] 这里的s就是随便输入的txt文本。所以我们可以用for对他进行操作。 等他们的for操作完了之后,再用stpi[c]对所有的c进行操作。这里唯一的变量就是输入的s。
另外一个比较难的例子: decode = lambda l: ‘‘.join(itos[i] for i in l )
#lambda #python
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
字典dictionary的创建 my_dict = {‘a’: 1, ‘b’, :2 ‘c’:3} 字典的形式直接就是中括号,然后里面是一对一对的。 每一对都是逗号隔开的 然后前面的是key ,key 冒号: value就是他的value
或者可以把list搞成字典:
pairs = [(‘a’, 1), (‘b’, 2), (‘c’, 3)] my_dict = dict(pairs) print(my_dict)
或者这种形式的也可以:(gpt就是这么搞的character,把每个character 都弄成了字典)
keys = [‘a’, ‘b’, ‘c’] values = [1, 2, 3] my_dict = {k: v for k, v in zip(keys, values)} print(my_dict)
要想获取dict里面的value,可以用这种方法: my_dict[k]
如果想要搞一个完整的string 就可以参照这样的写法: encode = lambda s: [stoi[c] for c in s] Decode = lambda l: ‘’.join([itos[i] for i in l]
#python #dictionary #gpt #list #enumerate
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
Enumerate 返回的值是可以iterate的,也就是可以用for来处理他的返回value。所以for i, j in enumerate… Enumerate 返回的值是可以iterate的,也就是可以用for来处理他的返回value。所以for i, j in enumerate(…)是合理的
一个简单的例子: #string to integer (encoding) stoi = {i: w for i, w in enumerate(chars)}
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
iPad可以看网页学习,连商场的wifi。mac连自己的热点,ipad在左边,充电线插在右边。iPhone在左边,充电线在左边。… iPad可以看网页学习,连商场的wifi。mac连自己的热点,ipad在左边,充电线插在右边。iPhone在左边,充电线在左边。 Ipad稍稍往全面挪,挪到靠近自己的手的位置。 iPad的YouTube可以在Safari上面看,最大屏幕,然后把翻译软件悬浮放在最左边。
音量,mac一定要静音,ipad连上森海塞尔的耳机。
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
decoding encoding 字符来做chatgpt, 做成字典的样子(正反字典),用enumerate 把list做成字典,要用enumerate
这个例子: text = “hello world” chars = sorted(list(set(text))) vocab_size = len(chars) print(vocab_size) # 输出: 8
创建字符到索引的映射字典
stoi = {ch: i for i, ch in enumerate(chars)}
打印结果
print(stoi) # 输出: {‘ ‘: 0, ‘d’: 1, ‘e’: 2, ‘h’: 3, ‘l’: 4, ‘o’: 5, ‘r’: 6, ‘w’: 7}
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
set{}转换成list  
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
切片操作 也就是: 不只有在numpy array时可以用的,python的字符串r和list都可以用 text = “Hello, world!” print(text[7:]) # 输出: “world!” print(text[:5]) # 输出: “Hello” print(text[3:8]) # 输出: “lo, w” print(text[:]) # 输出: “Hello, world!”
len(text) print(text[:100]) print(type(text))
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
ASCII和utf-8 的区别 ASCII就是美国的标准,主要就是能理解和解读英语和他的一些标点符号 ASCII(American Standard Code for Information Interchange)
Utf-8是为了中文,韩文,日文,法语的一些重音,甚至还可以包括表情符号。。准备的 所以为了让计算机能够理解我们下载的txt等信息,最好就是用encoding=‘utf-8’
UTF-8 的全称是 “Unicode Transformation Format - 8-bit” (这就有点像是联合国的标准)
如果搞错了,不用encoding=‘utf8’ 可能就会出现乱码
#ASCII #utf-8 #encoding
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
Open(文件位置,mode=‘r/w/x’/a, encoding=‘utf-8’) as f: Mode 的r是read ,就是读文件 ,一般情况下 我们read就够了
W是write,就是会对这个文件进行操作,改写
x就是创建一个新文件,然后往里面写东西
a就是append, 在文件后面append东西
Utf-8
#python #mode #encoding #utf-8
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
with (python里面的意思) 主要是在打开文件的时候, 确保文件在使用之后会自动关闭 with open(‘example.txt’, ‘r’) as file: content = file.read() print(content)
文件在这里自动关闭
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
subprocess 主要是一个python的module block 也就是用来运行command line的 他可以执行一些在terminal才可以执行的命令 这里有个例子,让他执行wget 网页下载到当前文件夹的命令
import subprocess
url = “https://raw.githubusercontent.com/karpathy/char-rnn/master/data/tinyshakespeare/input.txt” subprocess.run([“wget”, url])
这个跟直接在terminal写wget的命令产生的效果是一样的 只不过他可以让我们在python的一个文档里面执行这个命令 方便灵活了很多 !wget https://raw.githubusercontent.com/karpathy/char-rnn/master/data/tinyshakespeare/input.txt
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
Wget的用法,主要是从www上面拿一些数据,比如txt或者csv 主要他会吧这个文件下载到当前文件夹
要想在Jupyter notebook运行这个wget的命令,前面要加上! 因为他是command line的命令
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
seed 主要是想把所有devices产生随机数的seeds设置起来,让实验可以重复
在torch上可以这样说:
Torch.manual_seed(1337)
🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️下一個筆記🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️🐿️
Torch 他和tensor flow事不同的架构了。也是做NN的,可以用来做gpt,我学了一个教程就是用的他做的gptfrom scratch。
torch是Facebook团队开发的
https://www.youtube.com/watch?v=kCc8FmEb1nY&t=4454s
#torch #匯總今日內容