attr_names for python interface; attribute deletion via set_attr
This commit is contained in:
parent
8664217a5a
commit
a13a3a4d76
@ -709,19 +709,37 @@ class Booster(object):
|
|||||||
else:
|
else:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
def attr_names(self):
|
||||||
|
"""Get the names of attributes stored in the Booster.
|
||||||
|
|
||||||
|
Returns
|
||||||
|
-------
|
||||||
|
value : list of strings
|
||||||
|
Returns an empty list if there's no attributes.
|
||||||
|
"""
|
||||||
|
length = ctypes.c_ulong()
|
||||||
|
sarr = ctypes.POINTER(ctypes.c_char_p)()
|
||||||
|
_check_call(_LIB.XGBoosterGetAttrNames(self.handle,
|
||||||
|
ctypes.byref(length),
|
||||||
|
ctypes.byref(sarr)))
|
||||||
|
res = from_cstr_to_pystr(sarr, length)
|
||||||
|
return res
|
||||||
|
|
||||||
def set_attr(self, **kwargs):
|
def set_attr(self, **kwargs):
|
||||||
"""Set the attribute of the Booster.
|
"""Set the attribute of the Booster.
|
||||||
|
|
||||||
Parameters
|
Parameters
|
||||||
----------
|
----------
|
||||||
**kwargs
|
**kwargs
|
||||||
The attributes to set
|
The attributes to set. Setting a value to None deletes an attribute.
|
||||||
"""
|
"""
|
||||||
for key, value in kwargs.items():
|
for key, value in kwargs.items():
|
||||||
|
if value is not None:
|
||||||
if not isinstance(value, STRING_TYPES):
|
if not isinstance(value, STRING_TYPES):
|
||||||
raise ValueError("Set Attr only accepts string values")
|
raise ValueError("Set Attr only accepts string values")
|
||||||
|
value = c_str(str(value))
|
||||||
_check_call(_LIB.XGBoosterSetAttr(
|
_check_call(_LIB.XGBoosterSetAttr(
|
||||||
self.handle, c_str(key), c_str(str(value))))
|
self.handle, c_str(key), value))
|
||||||
|
|
||||||
def set_param(self, params, value=None):
|
def set_param(self, params, value=None):
|
||||||
"""Set parameters into the Booster.
|
"""Set parameters into the Booster.
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user