code: def test_linear_pipeline_model(self) -> None:
      def make_workloads() -> workload.Stream:
          trainer = utils.TrainAndValidate()
  
          yield from trainer.send(
              steps=1, validation_freq=1, train_batch_calls=1
          )
          training_metrics, validation_metrics = trainer.result()
  
          for metrics in validation_metrics:
              assert "loss" in metrics
  
      controller = utils.make_trial_controller_from_trial_implementation(
          trial_class=deepspeed_linear_model.LinearPipelineEngineTrial,
          hparams=self.hparams,
          workloads=make_workloads(),
          trial_seed=self.trial_seed,
          expose_gpus=True,
      )
      controller.run()
  
imports: import copy
  import json
  import os
  import pathlib
  from typing import Any, Dict, Iterator, Optional
  import pytest
  import torch
  from deepspeed.runtime import config_utils
  import determined
  import determined.pytorch.deepspeed
  from determined import workload
  from tests.experiment import utils
  from tests.experiment.fixtures import deepspeed_linear_model
label_desc: Use image node_id 17 for calling the TestDeepSpeedTrial obj's underlying member method code with example usage: obj.test_linear_pipeline_model() without return types