我有一张图片,代码应该解释我做了什么。
blob=cv2.imread('right_test.png')
bwblob=cv2.cvtColor(blob,cv2.COLOR_BGR2GRAY)
resized_bwblob=cv2.resize(bwblob,(24,20),interpolation=cv2.INTER_AREA)
fd_blob, hog_blob = hog(resized_bwblob, orientations=9, pixels_per_cell=(4,4),cells_per_block=(2, 2),block_norm='L2-Hys', visualise=True)
print(fd_blob)
现在,该程序返回长度为720的HOG特征向量。 我想使用从上面的代码获得的特征向量训练MLP分类器模型。 我提到了链接:http://scikit-learn.org/stable/modules/neural_networks_supervised.html
from sklearn.neural_network import MLPClassifier
X = (n_samples, n_features)
y = (n_samples,)
clf = MLPClassifier(solver='lbfgs', alpha=1e-5,
hidden_layer_sizes=(5, 2), random_state=1)
clf.fit(X, y)
如何将我所拥有的特征向量与上面代码中的X和y值相关联?
答案 0 :(得分:0)
假设您的要素向量fd_blob
具有形状(720, )
,那么您需要执行以下操作才能将其提供给模型:
fd_blob = fd_blob.reshape(-1, 720)
这将是您的X
。
对于y
,它取决于你试图用这个模型做什么,但如果你不得不问这个问题那么你可能应该先阅读一下机器学习,然后再继续学习。
通常,如果您的目标是一维的,或者(n_samples,)
用于更通用的方法,您希望它是一个形状(n_samples, output_size)
的数组。在您的情况下,n_samples = 1
。
另请注意,单个训练样本不适合训练神经网络。
干杯