hitachinsk / SAMed

The implementation of the technical report: "Customized Segment Anything Model for Medical Image Segmentation"
MIT License
438 stars 42 forks source link

Ran out of input问题 #47

Open luobendewugong opened 2 months ago

luobendewugong commented 2 months ago

您好,很感谢您公开的代码,我在使用您分享的train_npz_new_224数据进行训练时,出现了以下错误,看了所有的issues,没有找到类似的问题,研究了很久没能解决,您有遇到类似的问题吗?非常感谢!

错误

以下为对train.py的设置: parser = argparse.ArgumentParser() parser.add_argument('--root_path', type=str, default='./datasets/train_npz_new_224', help='root dir for data') parser.add_argument('--output', type=str, default='./output') parser.add_argument('--dataset', type=str, default='Synapse', help='experiment_name') parser.add_argument('--list_dir', type=str, default='./lists/lists_Synapse', help='list dir') parser.add_argument('--num_classes', type=int, default=8, help='output channel of network') parser.add_argument('--max_iterations', type=int, default=30000, help='maximum epoch number to train') parser.add_argument('--max_epochs', type=int, default=200, help='maximum epoch number to train') parser.add_argument('--stop_epoch', type=int, default=160, help='maximum epoch number to train') parser.add_argument('--batch_size', type=int, default=12, help='batch_size per gpu') parser.add_argument('--n_gpu', type=int, default=1, help='total gpu') parser.add_argument('--deterministic', type=int, default=1, help='whether use deterministic training') parser.add_argument('--base_lr', type=float, default=0.005, help='segmentation network learning rate') parser.add_argument('--img_size', type=int, default=224, help='input patch size of network input') parser.add_argument('--seed', type=int, default=1234, help='random seed') parser.add_argument('--vit_name', type=str, default='vit_b', help='select one vit model') parser.add_argument('--ckpt', type=str, default='checkpoints/sam_vit_b_01ec64.pth', help='Pretrained checkpoint') parser.add_argument('--lora_ckpt', type=str, default=None, help='Finetuned lora checkpoint') parser.add_argument('--rank', type=int, default=4, help='Rank for LoRA adaptation') parser.add_argument('--warmup', action='store_true', help='If activated, warp up the learning from a lower lr to the base_lr') parser.add_argument('--warmup_period', type=int, default=250, help='Warp up iterations, only valid whrn warmup is activated') parser.add_argument('--AdamW', action='store_true', help='If activated, use AdamW to finetune SAM model') parser.add_argument('--module', type=str, default='sam_lora_image_encoder') parser.add_argument('--dice_param', type=float, default=0.8) args = parser.parse_args() 再次感谢!

hitachinsk commented 2 months ago

您可以看看stack overflow上的问题回答,也许您应该重新下载一下数据和模型文件。 https://stackoverflow.com/questions/24791987/why-do-i-get-pickle-eoferror-ran-out-of-input-reading-an-empty-file

luobendewugong commented 2 months ago

您好,我参考https://www.cnblogs.com/applerun/p/15669615.html

目前看上去解决了问题,训练跑起来了,不知是否对症下药

PreWisdom commented 3 days ago

您好,我参考https://www.cnblogs.com/applerun/p/15669615.html

目前看上去解决了问题,训练跑起来了,不知是否对症下药

有用,其实看报错原因就是 Can't pickle local object 'trainer_synapse..worker_init_fn',找不到worker_init_fn函数,因为作者把这个函数定义在trainer_synapse函数里面了,具体为什么找不到我也没有细究,把这个函数写在外面,seed写成固定值就解决了