code: def test_train_filter_channels(
      self, tmp_path, fake_embeddings, train_file, dev_file
  ):
      args = [
          "--filter_sizes",
          "((3,2),3)",
          "--filter_channels",
          "20",
          "--no_bilstm",
      ]
      trainer = self.run_training(
          tmp_path, fake_embeddings, train_file, dev_file, args
      )
      assert trainer.model.fc_input_size == 40
  
      args = [
          "--filter_sizes",
          "((3,2),3)",
          "--filter_channels",
          "15,20",
          "--no_bilstm",
      ]
      trainer = self.run_training(
          tmp_path, fake_embeddings, train_file, dev_file, args
      )
      # 50 = 2x15 for the 2d conv (over 5 dim embeddings) + 20
      assert trainer.model.fc_input_size == 50
  
imports: import os
  import pytest
  import numpy
  import stanza.models.classifier
  import stanza.models.classifiers.data
  from stanza.models.classifiers.trainer import Trainer
  from stanza.models.common import pretrain
  from stanza.models.common import utils
  from stanza.tests.classifiers.test_data import train_file, dev_file, test_file, DATASET, SENTENCES
label_desc: Use image node_id 9 for calling the TestClassifier obj's underlying member method code with example usage: obj.test_train_filter_channels(tmp_path, fake_embeddings, train_file, dev_file) without return types