python之后这个“-u”有什么作用?[复制]

What does this "-u" do after python? [duplicate]

提问人:Zhu Neo 提问时间:11/17/2023 更新时间:11/17/2023 访问量:49

问:

python -u -m torch.distributed.launch --nproc_per_node=1 --master_port=9421 \ Genie_Finetune.py \ --checkpoint_path="/save/delibot" \ --model_channels 128 --in_channel 128 --out_channel 128 --vocab_size 30522 \ --config_name="bert-base-uncased" --token_emb_type="random" --model_arch="s2s_CAT" \ --diffusion_steps 2000 --predict_xstart --noise_schedule="sqrt" --training_mode="s2s" \ --schedule_sampler="loss-second-moment" --tgt_max_len 64 --src_max_len 512 --data_name="deli_data_small" \ --data_path="data" \ --lr_anneal_steps 120000 --batch_size 64 --lr 5e-05 --warmup_steps 7200 --train_type="S2S_Diffusion" \ --eval_interval 200 --log_interval 200 --save_interva 20000 \ --pretrain_model_path="/save/GENIE_ckpt-500w"

问候,我知道这个“-m”是用于多进程的,但是这个“-u”有什么作用?此外,如何在搜索引擎中搜索确切的字符串“-u”?似乎每个搜索引擎都忽略了这一点。

谢谢

我只是不想删除它并导致未知问题

Python PyTorch 计算 分布式训练

评论

0赞 tripleee 11/17/2023
-m并不意味着“多进程”; 说要用这个库作为主程序。-m torch.distributed.launch
0赞 Mark Ransom 11/17/2023
@Wonka真正的答案应该是答案,而不是评论。
0赞 mkrieger1 11/17/2023
google.com/search?q=%22python+-u%22 并没有忽视这一点(另一方面,stackoverflow.com/search?q=%5Bpython%5D+%22-u%22 几乎毫无用处)
1赞 tripleee 11/17/2023
@MarkRansom 另一方面,常见的常见问题解答应作为重复项关闭,而不是回答。
0赞 Mark Ransom 11/17/2023
@tripleee真的。我不知道它会是一个完全复制的。

答:

1赞 Kamil 11/17/2023 #1

Python 命令行中的选项代表“unbuffered”。默认情况下,当您运行 Python 脚本时,标准输出和标准错误流会被缓冲(这意味着它们在实际写入终端或文件之前会收集一定数量的数据)。这有时会导致查看输出时出现延迟,尤其是在某些环境(如 Docker 容器)中运行 Python 脚本时,或者通过其他命令管道输出时。-u

使用该标志时,它会强制 Python 解释器在无缓冲模式下运行。这意味着输出会立即写入终端或文件,这对于日志记录或想要实时查看输出非常有用。-u

至于在搜索引擎中搜索,它确实很棘手,因为搜索引擎经常忽略标点符号和特殊字符。一个好的方法是在搜索查询中包含其他上下文。例如,您可以搜索“python 命令行选项 -u”或“python -u 标志含义”。这样,搜索引擎就可以使用周围的上下文来了解这是您查询的重要组成部分。-u-u

关于删除标志,这样做通常是安全的。删除它的影响主要在于如何处理输出缓冲。如果您没有遇到任何与延迟输出或日志记录相关的问题,那么您的脚本应该在没有标志的情况下运行良好。但是,如果脚本是由其他人提供的(如在安装指南或预先编写的脚本中),则通常最好保持原样,除非你有特定原因要删除它。-u-u