mymusise / ChatGLM-Tuning

基于ChatGLM-6B + LoRA的Fintune方案
MIT License
3.73k stars 440 forks source link

File "<fstring>", line 1 (len(dataset)=) #155

Closed starplatinum3 closed 1 year ago

starplatinum3 commented 1 year ago

root@57jpde2j9lihi-0:/j05025/home/work/ChatGLM-Tuning# python finetune.py --dataset_path data/alpaca --lora_rank 8 --per_device_train_batch_size 6 --gradient_accumulation_steps 1 --max_steps 52000 --save_steps 1000 --save_total_limit 2 --learning_rate 1e-4 --fp16 --remove_unused_columns false --logging_steps 50 --output_dir output File "", line 1 (len(dataset)=) ^ 请问这句是打印长度吗,语法是不是出错了,还是一种我不知道的语法 print(f"\n{len(dataset)=}\n")

print(f"\n len(dataset) = {len(dataset)}\n")

starplatinum3 commented 1 year ago

哦哦 是语法 是我conda 没有active 用的 py36的缘故。。

是的,您说得对。在这个语句中,等号后面的部分“=”是Python 3.8中新引入的一种语法,用于在输出变量值时同时输出变量名和值。这种语法被称为“变量注释”(Variable Annotation)或“表达式注释”(Expression Annotation)。

具体来说,在这个示例中,我们使用了f-string来输出dataset列表的长度,并使用了变量注释来同时输出变量名和值。等号后面的部分“=len(dataset)”表示将变量名“dataset”的值设置为len(dataset)表达式的结果。

请注意,变量注释只是一种语法糖,它并不会改变代码的行为或性能。它主要用于调试和代码维护方面,可以帮助开发人员更好地理解代码中各个变量的含义和取值范围。如果您不需要使用变量注释,也可以将其省略,例如:

print(f"\n{len(dataset)}\n")

这样也是完全合法的Python代码,并且与带有变量注释的版本具有相同的行为和性能。