Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def __init__(self, meta, side, layers, device):
super(Classifier, self).__init__()
self.meta = meta
self.side = side
self.seq = Sequential(*layers)
self.valid = True
if meta[-1]['name'] != 'label' or meta[-1]['type'] != CATEGORICAL or meta[-1]['size'] != 2:
self.valid = False
masking = np.ones((1, 1, side, side), dtype='float32')
index = len(self.meta) - 1
self.r = index // side
self.c = index % side
masking[0, 0, self.r, self.c] = 0
self.masking = torch.from_numpy(masking).to(device)
def get_metadata(data, categorical_columns=tuple(), ordinal_columns=tuple()):
meta = []
df = pd.DataFrame(data)
for index in df:
column = df[index]
if index in categorical_columns:
mapper = column.value_counts().index.tolist()
meta.append({
"name": index,
"type": CATEGORICAL,
"size": len(mapper),
"i2s": mapper
})
elif index in ordinal_columns:
value_count = list(dict(column.value_counts()).items())
value_count = sorted(value_count, key=lambda x: -x[1])
mapper = list(map(lambda x: x[0], value_count))
meta.append({
"name": index,
"type": ORDINAL,
"size": len(mapper),
"i2s": mapper
})
else:
meta.append({
"name": index,
def _get_columns(metadata):
categorical_columns = list()
ordinal_columns = list()
for column_idx, column in enumerate(metadata['columns']):
if column['type'] == CATEGORICAL:
categorical_columns.append(column_idx)
elif column['type'] == ORDINAL:
ordinal_columns.append(column_idx)
return categorical_columns, ordinal_columns