TorchCraftAI
A bot for machine learning research on StarCraft: Brood War
|
Sparse featurizer for unit types, defogger-style. More...
#include <unitsfeatures.h>
Inherits cherrypi::UnitAttributeFeaturizer.
Inherited by cherrypi::UnitTypeMDefoggerFeaturizer.
Public Member Functions | |
UnitTypeDefoggerFeaturizer () | |
int | mapType (int unitType) const |
int | unmapType (int mappedType) const |
FeatureData | toDefoggerFeature (Data const &data, int res, int stride) 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 = 118 * 2 |
Protected Member Functions | |
virtual void | extractUnit (TensorDest acc, Unit *unit) override |
Reimplement this in actual featurizers. More... | |
Protected Attributes | |
std::array< int, 234 > * | typemap_ |
std::array< int, 234 > * | itypemap_ |
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 unit types, defogger-style.
This featurizer maps unit types to 118 IDs (instead of the 234 possible IDs) and assigns valid IDs to allied and enemy units only – neutral units will be be mapped to -1.
toDefoggerFeature()
supports pooling with a given resolution and stride so that the result contains accumulated unit counts per type for each "cell". It ignores neutral units.
cherrypi::UnitTypeDefoggerFeaturizer::UnitTypeDefoggerFeaturizer | ( | ) |
|
inlineoverrideprotectedvirtual |
Reimplement this in actual featurizers.
This function is expected to set acc[0], ..., acc[numChannels-1]
Implements cherrypi::UnitAttributeFeaturizer.
|
inline |
FeatureData cherrypi::UnitTypeDefoggerFeaturizer::toDefoggerFeature | ( | Data const & | data, |
int | res, | ||
int | stride | ||
) | const |
|
inline |
|
protected |
|
static |
|
protected |