2017-03-25 9 views
0

KNeighborsClassifierのオブジェクトを文字列に変換してクライアントからサーバーに送信しました。受信したデータをサーバー側で使用すると、互換性のないデータ型として検出されました。ここでは、クライアント側PythonのKNeighborsClassifierでサポートされている型に文字列を変換する

knn=KNeighborsClassifier(n_neighbors=k) 
clf = knn.fit(X_train_tfidf, twenty_train.target) 
sock.sendall(str(clf)) 

CLFのタイプで

プログラムは、文字列に変換されKNeighborsClassifierです。文字列をKNeighborsClassifier型に変換する方法はありますか?事前

+0

いいえなぜあなたは 'KNeighborsClassifier'上の' str'の結果は、元のオブジェクトに変換することができるであろうことを前提としていますか?これは一般的には当てはまりません。 –

+0

@ juanpa.arrivillaga **実際に私たちは 'clf'を送信して切断する必要があります。しかし、変換することなく、送信のために文字列バッファまたは文字バッファオブジェクトが必要なときには送信できません。それを文字列に変換せずに送信する方法はありますか?** – Neenu

+0

は、ピクルスを送信します。または、他の方法でシリアル化します。 –

答えて

0


おかげで、これを読む:http://scikit-learn.org/stable/modules/model_persistence.html

import pickle 
clf = KNeighborsClassifier(n_neighbors=k) 
clf.fit(X_train_tfidf, twenty_train.target) 
sock.sendall(pickle.dumps(clf)) 

# On the other side of the socket 
import pickle 
clf = pickle.loads(socket_input) 
+0

**シリアル化されたデータを送信することはできません。エラーは次のとおりです:** 'sock.sendall(pickle.dumps(clf)) ファイル" /usr/lib/python2.7/socket.py "、228行目、methで getattr(self._sock、name) (* args) socket.error:[Errno 104]ピアによる接続リセット – Neenu

+0

これはソケットの問題であり、モデルの永続性ではありません。詳細をお知らせください。 – fedeisas

+0

** [https://pymotw.com/2/socket/tcp.html]を参照してクライアントサーバーの対話を実装しました。私はデータをシリアル化することはできますが、送信することはできません。上記のエラーを表示しています** – Neenu

関連する問題