code: def __set__(self, instance, value):
      if isinstance(value, six.string_types):
          return super(ChoiceProperty, self).__set__(instance, value)
      return BaseProperty.__set__(self, instance, value)
  
imports: from __future__ import division
  from collections import namedtuple
  import six
  import numpy
  from numpy.linalg import norm
  from neupy import init
  from neupy.utils import as_tuple, format_data
  from neupy.algorithms import Kohonen
  from neupy.exceptions import WeightInitializationError
  from neupy.algorithms.associative.base import BaseAssociative
  from neupy.core.properties import BaseProperty, TypedListProperty, ChoiceProperty, NumberProperty, ParameterProperty, IntProperty
  from .randomized_pca import randomized_pca
  from .neighbours import find_step_scaler_on_rect_grid, find_neighbours_on_rect_grid, find_neighbours_on_hexagon_grid, find_step_scaler_on_hexagon_grid
label_desc: Use image node_id 1 for calling the SOFMWeightParameter obj's underlying member method code with example usage: obj.__set__(instance, value) and returns: BaseProperty, super