sidhomj / DeepTCR

Deep Learning Methods for Parsing T-Cell Receptor Sequencing (TCRSeq) Data
https://sidhomj.github.io/DeepTCR/
MIT License
113 stars 40 forks source link

supervised learning example 2 error #2

Closed hejing3283 closed 5 years ago

hejing3283 commented 5 years ago

I am running through the 2nd example of supervised learning using Rudqvist data. and keep getting error when doing the training.

Input:

Instantiate training object

DTCR_WF = DeepTCR_WF('Tutorial')

Load Data from directories

DTCR_WF.Get_Data(directory='github/DeepTCR/Data/Rudqvist', Load_Prev_Data=False, aggregate_by_aa=True, aa_column_beta=1,count_column=2,v_beta_column=7,d_beta_column=14,j_beta_column=21) DTCR_WF.Get_Train_Valid_Test(test_size=0.25) DTCR_WF.Train()

Error: Training_Statistics: Epoch: 1/10000 Training loss: 1.39491 Validation loss: 1.38709 Testing loss: 1.36048 Training Accuracy: 0.41667 Validation Accuracy: 0.0 Testing Accuracy: 0.5 Testing AUC: 0.66667 Training_Statistics: Epoch: 2/10000 Training loss: 1.37405 Validation loss: 1.37631 Testing loss: 1.36329 Training Accuracy: 0.33333 Validation Accuracy: 0.0 Testing Accuracy: 0.5 Testing AUC: 0.66667 Training_Statistics: Epoch: 3/10000 Training loss: 1.35652 Validation loss: 1.36742 Testing loss: 1.36681 Training Accuracy: 0.41667 Validation Accuracy: 0.25 Testing Accuracy: 0.5 Testing AUC: 0.58333 Training_Statistics: Epoch: 4/10000 Training loss: 1.34040 Validation loss: 1.35875 Testing loss: 1.37043 Training Accuracy: 0.66667 Validation Accuracy: 0.5 Testing Accuracy: 0.25 Testing AUC: 0.58333 Training_Statistics: Epoch: 5/10000 Training loss: 1.32491 Validation loss: 1.34920 Testing loss: 1.37438 Training Accuracy: 0.75 Validation Accuracy: 0.5 Testing Accuracy: 0.25 Testing AUC: 0.58333 Training_Statistics: Epoch: 6/10000 Training loss: 1.30922 Validation loss: 1.33924 Testing loss: 1.37817 Training Accuracy: 0.83333 Validation Accuracy: 0.25 Testing Accuracy: 0.5 Testing AUC: 0.58333 Training_Statistics: Epoch: 7/10000 Training loss: 1.29348 Validation loss: 1.32873 Testing loss: 1.38209 Training Accuracy: 0.83333 Validation Accuracy: 0.25 Testing Accuracy: 0.25 Testing AUC: 0.5 Training_Statistics: Epoch: 8/10000 Training loss: 1.27746 Validation loss: 1.31783 Testing loss: 1.38608 Training Accuracy: 0.91667 Validation Accuracy: 0.25 Testing Accuracy: 0.25 Testing AUC: 0.5 Training_Statistics: Epoch: 9/10000 Training loss: 1.26097 Validation loss: 1.30654 Testing loss: 1.39095 Training Accuracy: 0.91667 Validation Accuracy: 0.5 Testing Accuracy: 0.25 Testing AUC: 0.5 Training_Statistics: Epoch: 10/10000 Training loss: 1.24401 Validation loss: 1.29454 Testing loss: 1.39617 Training Accuracy: 0.83333 Validation Accuracy: 0.5 Testing Accuracy: 0.25 Testing AUC: 0.5 Training_Statistics: Epoch: 11/10000 Training loss: 1.22642 Validation loss: 1.28242 Testing loss: 1.40190 Training Accuracy: 0.91667 Validation Accuracy: 0.5 Testing Accuracy: 0.25 Testing AUC: 0.5 Training_Statistics: Epoch: 12/10000 Training loss: 1.20822 Validation loss: 1.27018 Testing loss: 1.40825 Training Accuracy: 0.83333 Validation Accuracy: 0.5 Testing Accuracy: 0.25 Testing AUC: 0.5 Training_Statistics: Epoch: 13/10000 Training loss: 1.18927 Validation loss: 1.25744 Testing loss: 1.41549 Training Accuracy: 0.83333 Validation Accuracy: 0.5 Testing Accuracy: 0.25 Testing AUC: 0.58333 Training_Statistics: Epoch: 14/10000 Training loss: 1.16937 Validation loss: 1.24402 Testing loss: 1.42367 Training Accuracy: 0.83333 Validation Accuracy: 0.5 Testing Accuracy: 0.25 Testing AUC: 0.58333 Training_Statistics: Epoch: 15/10000 Training loss: 1.14860 Validation loss: 1.22993 Testing loss: 1.43312 Training Accuracy: 0.83333 Validation Accuracy: 0.75 Testing Accuracy: 0.25 Testing AUC: 0.58333 Training_Statistics: Epoch: 16/10000 Training loss: 1.12682 Validation loss: 1.21520 Testing loss: 1.44380 Training Accuracy: 0.75 Validation Accuracy: 0.75 Testing Accuracy: 0.25 Testing AUC: 0.58333 Training_Statistics: Epoch: 17/10000 Training loss: 1.10405 Validation loss: 1.20000 Testing loss: 1.45633 Training Accuracy: 0.75 Validation Accuracy: 0.5 Testing Accuracy: 0.25 Testing AUC: 0.58333 Training_Statistics: Epoch: 18/10000 Training loss: 1.08021 Validation loss: 1.18428 Testing loss: 1.47065 Training Accuracy: 0.83333 Validation Accuracy: 0.5 Testing Accuracy: 0.25 Testing AUC: 0.58333 Training_Statistics: Epoch: 19/10000 Training loss: 1.05532 Validation loss: 1.16801 Testing loss: 1.48714 Training Accuracy: 0.83333 Validation Accuracy: 0.5 Testing Accuracy: 0.25 Testing AUC: 0.58333 Training_Statistics: Epoch: 20/10000 Training loss: 1.02967 Validation loss: 1.15104 Testing loss: 1.50585 Training Accuracy: 0.83333 Validation Accuracy: 0.5 Testing Accuracy: 0.25 Testing AUC: 0.58333 Training_Statistics: Epoch: 21/10000 Training loss: 1.00291 Validation loss: 1.13350 Testing loss: 1.52693 Training Accuracy: 0.83333 Validation Accuracy: 0.5 Testing Accuracy: 0.25 Testing AUC: 0.58333 Training_Statistics: Epoch: 22/10000 Training loss: 0.97514 Validation loss: 1.11567 Testing loss: 1.55058 Training Accuracy: 0.83333 Validation Accuracy: 0.5 Testing Accuracy: 0.25 Testing AUC: 0.58333 Training_Statistics: Epoch: 23/10000 Training loss: 0.94636 Validation loss: 1.09774 Testing loss: 1.57718 Training Accuracy: 0.83333 Validation Accuracy: 0.5 Testing Accuracy: 0.25 Testing AUC: 0.58333 Training_Statistics: Epoch: 24/10000 Training loss: 0.91668 Validation loss: 1.07971 Testing loss: 1.60673 Training Accuracy: 0.83333 Validation Accuracy: 0.5 Testing Accuracy: 0.25 Testing AUC: 0.58333 Training_Statistics: Epoch: 25/10000 Training loss: 0.88618 Validation loss: 1.06198 Testing loss: 1.63951 Training Accuracy: 0.83333 Validation Accuracy: 0.5 Testing Accuracy: 0.25 Testing AUC: 0.58333 Training_Statistics: Epoch: 26/10000 Training loss: 0.85506 Validation loss: 1.04472 Testing loss: 1.67605 Training Accuracy: 0.83333 Validation Accuracy: 0.5 Testing Accuracy: 0.25 Testing AUC: 0.58333 Training_Statistics: Epoch: 27/10000 Training loss: 0.82325 Validation loss: 1.02834 Testing loss: 1.71696 Training Accuracy: 0.91667 Validation Accuracy: 0.5 Testing Accuracy: 0.25 Testing AUC: 0.58333

AttributeError Traceback (most recent call last)

in 1 DTCR_WF.Get_Train_Valid_Test(test_size=0.25) ----> 2 DTCR_WF.Train() ~/anaconda3/envs/dl/lib/python3.7/site-packages/DeepTCR/DeepTCR.py in Train(self, batch_size, epochs_min, stop_criterion, stop_criterion_window, kernel, on_graph_clustering, num_clusters, weight_by_class, class_weights, trainable_embedding, accuracy_min, num_fc_layers, units_fc, drop_out_rate, suppress_output, use_only_seq, use_only_gene, use_only_hla, size_of_net, embedding_dim_aa, embedding_dim_genes, embedding_dim_hla) 3223 GO.saver.save(sess, os.path.join(self.Name, 'model', 'model.ckpt')) 3224 -> 3225 self.HLA_embed = GO.embedding_layer_hla.eval() 3226 3227 with open(os.path.join(self.Name, 'model', 'model_type.pkl'), 'wb') as f: AttributeError: 'graph_object' object has no attribute 'embedding_layer_hla' System: MacOS 10.13.6
sidhomj commented 5 years ago

Thanks for catching this bug! It should be fixed now!

hejing3283 commented 5 years ago

rerun with the same code, I am getting another error:

Training_Statistics: Epoch: 1/10000 Training loss: 1.38409 Validation loss: 1.37432 Testing loss: 1.41080 Training Accuracy: 0.25 Validation Accuracy: 0.25 Testing Accuracy: 0.25 Testing AUC: 0.25 Training_Statistics: Epoch: 2/10000 Training loss: 1.36950 Validation loss: 1.36737 Testing loss: 1.40001 Training Accuracy: 0.33333 Validation Accuracy: 0.0 Testing Accuracy: 0.25 Testing AUC: 0.33333 Training_Statistics: Epoch: 3/10000 Training loss: 1.35901 Validation loss: 1.36124 Testing loss: 1.38970 Training Accuracy: 0.33333 Validation Accuracy: 0.0 Testing Accuracy: 0.25 Testing AUC: 0.41667 Training_Statistics: Epoch: 4/10000 Training loss: 1.34902 Validation loss: 1.35487 Testing loss: 1.37944 Training Accuracy: 0.33333 Validation Accuracy: 0.0 Testing Accuracy: 0.25 Testing AUC: 0.5 Training_Statistics: Epoch: 5/10000 Training loss: 1.33881 Validation loss: 1.34863 Testing loss: 1.36975 Training Accuracy: 0.5 Validation Accuracy: 0.25 Testing Accuracy: 0.25 Testing AUC: 0.58333 Training_Statistics: Epoch: 6/10000 Training loss: 1.32875 Validation loss: 1.34238 Testing loss: 1.36041 Training Accuracy: 0.66667 Validation Accuracy: 0.5 Testing Accuracy: 0.5 Testing AUC: 0.66667 Training_Statistics: Epoch: 7/10000 Training loss: 1.31871 Validation loss: 1.33621 Testing loss: 1.35106 Training Accuracy: 0.66667 Validation Accuracy: 0.5 Testing Accuracy: 0.5 Testing AUC: 0.66667 Training_Statistics: Epoch: 8/10000 Training loss: 1.30857 Validation loss: 1.32980 Testing loss: 1.34118 Training Accuracy: 0.75 Validation Accuracy: 0.5 Testing Accuracy: 0.5 Testing AUC: 0.75 Training_Statistics: Epoch: 9/10000 Training loss: 1.29816 Validation loss: 1.32305 Testing loss: 1.33092 Training Accuracy: 0.75 Validation Accuracy: 0.5 Testing Accuracy: 0.5 Testing AUC: 0.83333 Training_Statistics: Epoch: 10/10000 Training loss: 1.28725 Validation loss: 1.31590 Testing loss: 1.32013 Training Accuracy: 0.75 Validation Accuracy: 0.5 Testing Accuracy: 0.75 Testing AUC: 0.83333 Training_Statistics: Epoch: 11/10000 Training loss: 1.27575 Validation loss: 1.30824 Testing loss: 1.30858 Training Accuracy: 0.75 Validation Accuracy: 0.5 Testing Accuracy: 0.75 Testing AUC: 0.83333 Training_Statistics: Epoch: 12/10000 Training loss: 1.26360 Validation loss: 1.30010 Testing loss: 1.29605 Training Accuracy: 0.75 Validation Accuracy: 0.5 Testing Accuracy: 0.75 Testing AUC: 0.83333 Training_Statistics: Epoch: 13/10000 Training loss: 1.25080 Validation loss: 1.29135 Testing loss: 1.28303 Training Accuracy: 0.75 Validation Accuracy: 0.5 Testing Accuracy: 0.75 Testing AUC: 0.83333 Training_Statistics: Epoch: 14/10000 Training loss: 1.23742 Validation loss: 1.28204 Testing loss: 1.26949 Training Accuracy: 0.83333 Validation Accuracy: 0.5 Testing Accuracy: 0.75 Testing AUC: 0.83333 Training_Statistics: Epoch: 15/10000 Training loss: 1.22338 Validation loss: 1.27214 Testing loss: 1.25529 Training Accuracy: 0.83333 Validation Accuracy: 0.75 Testing Accuracy: 0.75 Testing AUC: 0.83333 Training_Statistics: Epoch: 16/10000 Training loss: 1.20849 Validation loss: 1.26171 Testing loss: 1.24033 Training Accuracy: 0.83333 Validation Accuracy: 0.75 Testing Accuracy: 0.75 Testing AUC: 0.83333 Training_Statistics: Epoch: 17/10000 Training loss: 1.19261 Validation loss: 1.25059 Testing loss: 1.22458 Training Accuracy: 0.83333 Validation Accuracy: 0.75 Testing Accuracy: 0.75 Testing AUC: 0.83333 Training_Statistics: Epoch: 18/10000 Training loss: 1.17566 Validation loss: 1.23879 Testing loss: 1.20838 Training Accuracy: 0.83333 Validation Accuracy: 0.75 Testing Accuracy: 0.75 Testing AUC: 0.83333 Training_Statistics: Epoch: 19/10000 Training loss: 1.15772 Validation loss: 1.22629 Testing loss: 1.19153 Training Accuracy: 0.83333 Validation Accuracy: 0.75 Testing Accuracy: 0.75 Testing AUC: 0.83333 Training_Statistics: Epoch: 20/10000 Training loss: 1.13872 Validation loss: 1.21323 Testing loss: 1.17442 Training Accuracy: 0.83333 Validation Accuracy: 0.75 Testing Accuracy: 0.75 Testing AUC: 0.83333 Training_Statistics: Epoch: 21/10000 Training loss: 1.11874 Validation loss: 1.19932 Testing loss: 1.15680 Training Accuracy: 0.83333 Validation Accuracy: 0.75 Testing Accuracy: 0.75 Testing AUC: 0.83333 Training_Statistics: Epoch: 22/10000 Training loss: 1.09756 Validation loss: 1.18464 Testing loss: 1.13854 Training Accuracy: 0.83333 Validation Accuracy: 0.75 Testing Accuracy: 0.75 Testing AUC: 0.83333 Training_Statistics: Epoch: 23/10000 Training loss: 1.07510 Validation loss: 1.16939 Testing loss: 1.11921 Training Accuracy: 0.83333 Validation Accuracy: 0.75 Testing Accuracy: 0.75 Testing AUC: 0.83333 Training_Statistics: Epoch: 24/10000 Training loss: 1.05126 Validation loss: 1.15319 Testing loss: 1.09923 Training Accuracy: 0.83333 Validation Accuracy: 0.75 Testing Accuracy: 0.75 Testing AUC: 0.83333 Training_Statistics: Epoch: 25/10000 Training loss: 1.02603 Validation loss: 1.13620 Testing loss: 1.07935 Training Accuracy: 0.83333 Validation Accuracy: 0.75 Testing Accuracy: 0.75 Testing AUC: 0.83333 Training_Statistics: Epoch: 26/10000 Training loss: 0.99952 Validation loss: 1.11844 Testing loss: 1.06005 Training Accuracy: 0.83333 Validation Accuracy: 0.75 Testing Accuracy: 0.75 Testing AUC: 0.83333 Training_Statistics: Epoch: 27/10000 Training loss: 0.97157 Validation loss: 1.10009 Testing loss: 1.04184 Training Accuracy: 0.83333 Validation Accuracy: 0.75 Testing Accuracy: 0.75 Testing AUC: 0.83333

AttributeError Traceback (most recent call last)

in 1 # DTCR_WF.Get_Train_Valid_Test(test_size=0.25) ----> 2 DTCR_WF.Train() ~/anaconda3/envs/dl/lib/python3.7/site-packages/DeepTCR/DeepTCR.py in Train(self, batch_size, epochs_min, stop_criterion, stop_criterion_window, kernel, on_graph_clustering, num_clusters, weight_by_class, class_weights, trainable_embedding, accuracy_min, num_fc_layers, units_fc, drop_out_rate, suppress_output, use_only_seq, use_only_gene, use_only_hla, size_of_net, embedding_dim_aa, embedding_dim_genes, embedding_dim_hla) AttributeError: 'graph_object' object has no attribute 'embedding_layer_hla'
sidhomj commented 5 years ago

Did you pull the latest update from the master branch?

hejing3283 commented 5 years ago

Yes, I checked the code also, you added a If statement in line 3225 in the latest script. am I right?

sidhomj commented 5 years ago

yup, i'm running this code right now.. and it's working.. can you pull the line where the code is failing from the error report?

hejing3283 commented 5 years ago

It's strange since I didn't get a line number. The error message is :

I think the error line is still at 3226 since its the only place that have "GO.embedding_layer_hla". What is the default for use_hla?

AttributeError Traceback (most recent call last)

in 1 # DTCR_WF.Get_Train_Valid_Test(test_size=0.25) ----> 2 DTCR_WF.Train() ~/anaconda3/envs/dl/lib/python3.7/site-packages/DeepTCR/DeepTCR.py in Train(self, batch_size, epochs_min, stop_criterion, stop_criterion_window, kernel, on_graph_clustering, num_clusters, weight_by_class, class_weights, trainable_embedding, accuracy_min, num_fc_layers, units_fc, drop_out_rate, suppress_output, use_only_seq, use_only_gene, use_only_hla, size_of_net, embedding_dim_aa, embedding_dim_genes, embedding_dim_hla) AttributeError: 'graph_object' object has no attribute 'embedding_layer_hla'
sidhomj commented 5 years ago

it should be set to False when you init the instance. unless you load hla data, it should never change.

sidhomj commented 5 years ago

image

when I run this, I have no problems.

hejing3283 commented 5 years ago

I didn't change the tutorial code. its strange here.

sidhomj commented 5 years ago

I just ran the jupyter notebook and I had no problems. I would put a breakpoint if you're in an IDE at that line and see if you break into it. if you do, then some how self.use_hla is being set to True somewhere.

hejing3283 commented 5 years ago

It's working now... Thanks for the timely response!

sidhomj commented 5 years ago

No problem! thanks for piloting DeepTCR. Looking for all feedback we can get to make it better!