code: def memory_devices(self, run, worker, span):
      run_manager = self._reader.get_run_manager(run)
      if run_manager is None:
          return []
      profiler_data = run_manager.get_profiler_data(worker, span)
      if profiler_data:
          return profiler_data.get_memory_devices()
  
imports: import json
  from .profiler_reader import ProfilerReader
  from visualdl.server.api import gen_result
  from visualdl.server.api import result
label_desc: Use image node_id 26 for calling the ProfilerApi obj's underlying member method code with example usage: obj.memory_devices(run, worker, span) and returns: list, profiler_data