问题描述
我可以在网上找到许多使用CUDA纹理引用的示例,但很少有依赖纹理对象的示例。我试图了解为什么我的下面的代码总是获取x = [(n2w_model[str(i)]+n2w_model[str(j)]) for i,j in zip(df_new['u1'],df_new['u2'])]
from sklearn.model_selection import train_test_split
xtrain,xtest,ytrain,ytest = train_test_split(np.array(x),df_new['link'],test_size = 0.3,random_state = 35)
from sklearn.linear_model import LogisticRegression
lr = LogisticRegression(class_weight="balanced")
lr.fit(xtrain,ytrain)
predictions = lr.predict_proba(xtest)
from sklearn.metrics import roc_auc_score
roc_auc_score(ytest,predictions[:,1])
而不是我的输入纹理。我是否缺少某些东西,或使用了错误的设置?我尽可能地简化了它:
0
解决方法
在您的代码中,将纹理描述指定为
texDesc.addressMode[0] = cudaAddressModeBorder;
texDesc.addressMode[1] = cudaAddressModeBorder;
texDesc.filterMode = cudaFilterModeLinear;
texDesc.readMode = cudaReadModeElementType;
texDesc.normalizedCoords = 1;
,保存纹理数据的数组定义为
auto channelDesc = cudaCreateChannelDesc<uchar4>();
线性过滤
在这种过滤模式下,仅适用于浮点纹理……
您有一个uchar4
纹理。您不能对整数纹理使用线性过滤。更改为浮点纹理类型或使用其他读取模式。