TorchCraftAI
A bot for machine learning research on StarCraft: Brood War
|
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< BaseJitter > | jitter = std::make_shared<NoJitter>() |
Optional jittering of unit positions. More... | |
CustomFeatureType | type |
std::string | name |
int | numChannels |
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.
|
inline |
|
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 |
|
static |