我正在使用cuML进行随机梯度下降。我使用sklearn的train_test_split从cuDF数据帧生成train_X,train_y ...的分割。
以下代码(我删除了与此问题无关的超参数):
from cuml.solvers import SGD as cumlSGD
cu_sgd = cumlSGD(eta0=0.005)
cu_sgd.fit(train_X, train_y)
在cu_sgd.fit行上引发以下错误: 'nvstrings'对象没有属性'to_gpu_array'
如何解决这个问题?
答案 0 :(得分:1)
解决方案是首先将train_X
或train_Y
中具有string
dtype
的任何列转换为category
dtype。字符串不能用to_gpu_array
转换,因为它们不是固定宽度的。您会丢失实际的字符串值,但是可以重新构造它们,并且cu_sgd.fit
应该可以正常工作。