ml-jku / DeepRC

DeepRC: Immune repertoire classification with attention-based deep massive multiple instance learning
112 stars 24 forks source link

RuntimeError: "unfolded2d_copy" not implemented for 'Half' #7

Closed Albert-Shuai closed 2 years ago

Albert-Shuai commented 2 years ago

Hi I am trying to train a model using toturial dataset, but only on CPU without GPU. I use the [example_single_task_cnn.py]:

train(model, task_definition=task_definition, trainingset_dataloader=trainingset, ... trainingset_eval_dataloader=trainingset_eval, learning_rate=args.learning_rate, ... early_stopping_target_id='binary_target_1', # Get model that performs best for this task ... validationset_eval_dataloader=validationset_eval, n_updates=args.n_updates, evaluate_at=args.evaluate_at, ... device=device, results_directory="/users/sli1/deeprc_result/",show_progress=True) Saving checkpoint to memory... done! Training model... loss= nan: 0%| | 0/1000 [00:00<?, ?it/s] Saving checkpoint to file... done! Loading checkpoint from memory "0"... done! Saving checkpoint to file... done! Finished Training!

However, I get the following error.

Traceback (most recent call last): File "", line 5, in File "/users/sli1/.conda/envs/deeprc/lib/python3.6/site-packages/deeprc/training.py", line 282, in train raise e File "/users/sli1/.conda/envs/deeprc/lib/python3.6/site-packages/deeprc/training.py", line 193, in train labels, inputs, sequence_lengths, counts_per_sequence) File "/users/sli1/.conda/envs/deeprc/lib/python3.6/site-packages/deeprc/architectures.py", line 375, in reduce_and_stack_minibatch in zip(inputs_list, sequence_lengths)])) File "/users/sli1/.conda/envs/deeprc/lib/python3.6/site-packages/deeprc/architectures.py", line 374, in for inp, sequence_lengths File "/users/sli1/.conda/envs/deeprc/lib/python3.6/site-packages/deeprc/architectures.py", line 511, in __reduce_sequences_for_bag__ emb_seqs = self.sequence_embedding(inputs_mb, sequence_lengths=sequence_lengths_mb).to(dtype=torch.float32) File "/users/sli1/.conda/envs/deeprc/lib/python3.6/site-packages/torch/nn/modules/module.py", line 1102, in _call_impl return forward_call(*input, kwargs) File "/users/sli1/.conda/envs/deeprc/lib/python3.6/site-packages/deeprc/architectures.py", line 84, in forward conv_acts = self.network(inputs) File "/users/sli1/.conda/envs/deeprc/lib/python3.6/site-packages/torch/nn/modules/module.py", line 1102, in _call_impl return forward_call(*input, *kwargs) File "/users/sli1/.conda/envs/deeprc/lib/python3.6/site-packages/torch/nn/modules/container.py", line 141, in forward input = module(input) File "/users/sli1/.conda/envs/deeprc/lib/python3.6/site-packages/torch/nn/modules/module.py", line 1102, in _call_impl return forward_call(input, kwargs) File "/users/sli1/.conda/envs/deeprc/lib/python3.6/site-packages/torch/nn/modules/conv.py", line 301, in forward return self._conv_forward(input, self.weight, self.bias) File "/users/sli1/.conda/envs/deeprc/lib/python3.6/site-packages/torch/nn/modules/conv.py", line 298, in _conv_forward self.padding, self.dilation, self.groups) RuntimeError: "unfolded2d_copy" not implemented for 'Half'

May I learn how should I fix this.

Albert-Shuai commented 2 years ago

I just modify the code in architecture.py to set dtype as float instead of float16