Google 클라우드에 셉션을 재교육 할 때 레이블 이름을 변경 : 나는 내 수업의 인덱스 등을 얻을 API와 예측을 할 때, 그러나 https://cloud.google.com/blog/big-data/2016/12/how-to-train-and-classify-images-using-google-cloud-machine-learning-and-cloud-dataflow나는 현재 이미지 분류 셉션을 재교육 할 수있는 튜토리얼을 따라 ML
을 라벨. 그러나 나는 API가 실제로 내가 좀하고 싶습니다 대신
predictions:
- key: '0'
prediction: 4
scores:
- 8.11998e-09
- 2.64907e-08
- 1.10307e-06
의 실제 클래스 이름 등으로 다시 나에게 문자열을 제공한다는 싶습니다
predictions:
- key: '0'
prediction: ROSES
scores:
- 8.11998e-09
- 2.64907e-08
- 1.10307e-06
를 구글 API에 대한 참조를 보면 그 가능해야한다 : 나는 이미
outputs = {
'key': keys.name,
'prediction': tensors.predictions[0].name,
'scores': tensors.predictions[1].name
}
tf.add_to_collection('outputs', json.dumps(outputs))
에 다음 model.py에 변경하려고
https://cloud.google.com/ml-engine/reference/rest/v1/projects/predict
16,
if tensors.predictions[0].name == 0:
pred_name ='roses'
elif tensors.predictions[0].name == 1:
pred_name ='tulips'
outputs = {
'key': keys.name,
'prediction': pred_name,
'scores': tensors.predictions[1].name
}
tf.add_to_collection('outputs', json.dumps(outputs))
에하지만이 작동하지 않습니다.
다음은 preprocess.py 파일에서이 부분을 변경하는 것입니다. 대신 색인을 사용하면서 문자열 레이블을 사용하고 싶습니다.
def process(self, row, all_labels):
try:
row = row.element
except AttributeError:
pass
if not self.label_to_id_map:
for i, label in enumerate(all_labels):
label = label.strip()
if label:
self.label_to_id_map[label] = label #i
및
label_ids = []
for label in row[1:]:
try:
label_ids.append(label.strip())
#label_ids.append(self.label_to_id_map[label.strip()])
except KeyError:
unknown_label.inc()
하지만이 오류 제공합니다
TypeError: 'roses' has type <type 'str'>, but expected one of: (<type 'int'>, <type 'long'>) [while running 'Embed and make TFExample']
이 때문에 내가 문자열을 허용하기 위해, preprocess.py 여기에 뭔가를 변경해야한다고 생각 :
를example = tf.train.Example(features=tf.train.Features(feature={
'image_uri': _bytes_feature([uri]),
'embedding': _float_feature(embedding.ravel().tolist()),
}))
if label_ids:
label_ids.sort()
example.features.feature['label'].int64_list.value.extend(label_ids)
하지만 알 수는 없습니다. str_list처럼 someting을 찾을 수 없으므로 그것을 적절하게 변경하는 방법. 아무도 여기 좀 도와 줄래?