TorchCraftAI
A bot for machine learning research on StarCraft: Brood War
Public Member Functions | Static Public Attributes | Protected Member Functions | List of all members
cherrypi::UnitTypeFeaturizer Struct Reference

Sparse featurizer for numeric unit types. More...

#include <unitsfeatures.h>

Inherits cherrypi::UnitAttributeFeaturizer.

Public Member Functions

 UnitTypeFeaturizer ()
 
FeatureData toOneHotSpatialFeature (Data const &data, int unitValueOffset, std::unordered_map< int, int > const &channelValues) const
 
- Public Member Functions inherited from cherrypi::UnitAttributeFeaturizer
virtual ~UnitAttributeFeaturizer ()=default
 
virtual Data extract (State *state, UnitsInfo::Units const &units, Rect const &boundingBox=Rect())
 Extract unit features for a given set of units. More...
 
Data extract (State *state, Rect const &boundingBox=Rect())
 Extract unit features for all live units. More...
 
Data extract (State *state, UnitFilter filter, Rect const &boundingBox=Rect())
 Extract unit features for all live units that pass the given filter. More...
 
FeatureData toSpatialFeature (Data const &data, SubsampleMethod pooling=SubsampleMethod::Sum) const
 Embeds the unit attribute data into a spatial feature. More...
 
void toSpatialFeature (FeatureData *dest, Data const &data, SubsampleMethod pooling=SubsampleMethod::Sum) const
 Embeds the unit attribute data into a spatial feature. More...
 

Static Public Attributes

static int constexpr kNumUnitTypes = 233 * 3
 

Protected Member Functions

virtual void extractUnit (TensorDest acc, Unit *unit) override
 Reimplement this in actual featurizers. More...
 

Additional Inherited Members

- Public Types inherited from cherrypi::UnitAttributeFeaturizer
using UnitFilter = std::function< bool(Unit *)>
 
using TensorDest = torch::TensorAccessor< float, 1 >
 
- Public Attributes inherited from cherrypi::UnitAttributeFeaturizer
std::shared_ptr< BaseJitterjitter = std::make_shared<NoJitter>()
 Optional jittering of unit positions. More...
 
CustomFeatureType type
 
std::string name
 
int numChannels
 

Detailed Description

Sparse featurizer for numeric unit types.

This will produce a single-channel feature that contains a unit type ID for each unit. Unit IDs are mutually exclusive for allied (0-232), enemy (233-465) and neutral units (466-698).

The resulting sparse feature is suitable for embedding via lookup tables.

Constructor & Destructor Documentation

cherrypi::UnitTypeFeaturizer::UnitTypeFeaturizer ( )
inline

Member Function Documentation

virtual void cherrypi::UnitTypeFeaturizer::extractUnit ( TensorDest  acc,
Unit unit 
)
inlineoverrideprotectedvirtual

Reimplement this in actual featurizers.

This function is expected to set acc[0], ..., acc[numChannels-1]

Implements cherrypi::UnitAttributeFeaturizer.

FeatureData cherrypi::UnitTypeFeaturizer::toOneHotSpatialFeature ( Data const &  data,
int  unitValueOffset,
std::unordered_map< int, int > const &  channelValues 
) const

Member Data Documentation

int constexpr cherrypi::UnitTypeFeaturizer::kNumUnitTypes = 233 * 3
static

The documentation for this struct was generated from the following files: