IBM/pytorchpipe

View on GitHub
configs/vqa_med_2019/question_categorization/question_categorization_rnn_ffn.yml

Summary

Maintainability
Test Coverage
# Load config defining tasks for training, validation and testing.
default_configs: vqa_med_2019/question_categorization/default_question_categorization.yml

pipeline:

  # Add global variables.
  global_publisher:
    type: GlobalVariablePublisher
    priority: 0
    # Add input_size to globals.
    keys: [question_lstm_output_size, image_size_encoder_input_size, image_size_encoder_output_size, image_encoder_output_size]
    values: [100, 2, 10, 100]


  # Questions encoding.
  question_tokenizer:
    type: SentenceTokenizer
    priority: 1.1
    streams: 
      inputs: questions
      outputs: tokenized_questions

  # Model 2: Embeddings
  question_embeddings:
    type: SentenceEmbeddings
    priority: 1.2
    embeddings_size: 50
    pretrained_embeddings_file: glove.6B.50d.txt
    data_folder: ~/data/vqa-med
    word_mappings_file: questions.all.word.mappings.csv
    streams:
      inputs: tokenized_questions
      outputs: embedded_questions      
  
  # Model 2: RNN
  lstm:
    type: RecurrentNeuralNetwork
    cell_type: LSTM
    prediction_mode: Last
    priority: 1.3
    initial_state: Zero
    use_logsoftmax: False
    dropout_rate: 0.5
    streams:
      inputs: embedded_questions
      predictions: lstm_activations_questions
    globals:
      input_size: embeddings_size
      prediction_size: question_lstm_output_size

  # Model
  classifier:
    type: FeedForwardNetwork
    hidden: [50]
    priority: 1.4
    dropout_rate: 0.5
    streams:
      inputs: lstm_activations_questions
    globals:
      input_size: question_lstm_output_size # Set by global publisher
      prediction_size: num_categories # C1,C2,C3,C4, BINARY, UNK


#: pipeline