sidhomj/DeepTCR

supervised learning example 2 error

hejing3283 opened this issue · 12 comments

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

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

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'

Did you pull the latest update from the master branch?

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

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?

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'

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

image

when I run this, I have no problems.

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

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.

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

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