LinearClassifier 클래스를 사용하여 이진 분류 모델에서 텐서 흐름을 사용하고 있습니다.linear weight index에서 string_to_hash_bucket의 인덱스 찾기 Tensorflow
hat = tf.contrib.layers.sparse_column_with_hash_bucket("hat", hash_bucket_size=1000)
나는 tf.Session (에 모델을 초기화에 맞는 일을 한 후) :
with tf.Session() as sess:
m = tf.contrib.learn.LinearClassifier(feature_columns=hat...)
m.fit(...)
I가 분류를 내놓고있어 기능 중 하나는 열라고 모자입니다 모델을 훈련 한 후에 각 모자 범주의 가중치를 검사하고 싶습니다.
모자 태그는 다른 문자열로 지정됩니다. 모델을 훈련 한 후에 각 모자 라벨과 관련된 무게를 찾고 싶습니다. 그러나 특정 모자와 무게를 비교하기 위해 나는 모자 라벨이 던져진 해시 양동이를 알아야합니다. 모자 레이블 중 하나는 "tb"입니다. 그때 가중치 돌이 여기 반환 할 수
tf.string_to_hash_bucket(tf.cast("tb",tf.string), 1000)
:
for i,n in enumerate(m.linear_weights_["linear/hat_weights"]):
print i, n
나에게 제공합니다
는linear/hat_weights
0 [-0.147]
...
내 문제는 내가이 기능을 사용하여 색인을 손쉽게 찾을 수 있습니다 유의미한 (abs (x)> 0.0005) 가중치를 가진 인덱스는 데이터 집합의 모든 모자 레이블에서 string_to_hash_bucket으로부터 얻는 해시 버킷 ID 중 하나와 일치하지 않습니다.
그래서 결국 내 질문 : 내가 바로 그 string_to_hash_bucket ID를 생각하는 m.linear_weights _ [ "선형/hat_weights"]로 해당 배열 반환의 인덱스에 해당한다
건가요?
올바른 ID를 얻으려면 어떻게해야합니까? 선형 모델에서 특성 열 텐서의 가중치 (선형 또는 가중치에도 포함되지 않은)와 희소성 모두를 쉽게 검사 할 수 있습니까?
많은 감사!