Bonjour Je souhaite initialiser le résultat de la variable nommée dans le code ci-dessous. J'ai essayé d'initialiser avec ce code * quand j'ai essayé de servir.service tensorflow non initialisé
sess.run (tf.global_variables_initializer(), feed_dict = { userLat: 0, userLon: 0})
Je veux juste initialiser la variable.
La raison de l'utilisation de la variable est d'écrire validate_shape = false.
La raison de l'utilisation de cette option est de résoudre l'erreur 'La dimension externe des sorties doit être inconnue, la dimension externe de' Variable: 0 'est 1' lors du déploiement de la version du modèle dans le moteur Google Cloud ml.
L'initialisation avec le code suivant affichera une valeur lorsque feed_dict vaut 0 lors d'une tentative de prédiction.
sess.run (tf.global_variables_initializer(), feed_dict = { userLat: 0, userLon: 0})
est-il un moyen d'initialiser simplement la valeur du résultat?
Ou est-il possible de stocker la liste des valeurs de tenseurs stockées en tant que chaîne avec une virgule sans forme?
C'est une question très basique. Je suis désolé. Je suis un débutant du courant tensoriel. J'ai besoin d'aide. Merci pour la lecture.
import tensorflow as tf
import sys,os
#define filename queue
filenameQueue =tf.train.string_input_producer(['./data.csv'],
shuffle=False,name='filename_queue')
# define reader
reader = tf.TextLineReader()
key,value = reader.read(filenameQueue)
#define decoder
recordDefaults = [ ["null"],[0.0],[0.0]]
sId,lat, lng = tf.decode_csv(
value, record_defaults=recordDefaults,field_delim=',')
taxiData=[]
with tf.Session() as sess:
coord = tf.train.Coordinator()
threads = tf.train.start_queue_runners(sess=sess, coord=coord)
for i in range(18):
data=sess.run([sId, lat, lng])
tmpTaxiData=[]
tmpTaxiData.append(data[0])
tmpTaxiData.append(data[1])
tmpTaxiData.append(data[2])
taxiData.append(tmpTaxiData)
coord.request_stop()
coord.join(threads)
from math import sin, cos,acos, sqrt, atan2, radians
#server input data
userLat = tf.placeholder(tf.float32, shape=[])
userLon = tf.placeholder(tf.float32, shape=[])
R = 6373.0
radian=0.017453292519943295
distanceList=[]
for i in taxiData:
taxiId=tf.constant(i[0],dtype=tf.string,shape=[])
taxiLat=tf.constant(i[1],dtype=tf.float32,shape=[])
taxiLon=tf.constant(i[2],dtype=tf.float32,shape=[])
distanceValue=6371*tf.acos(tf.cos(radian*userLat)*
tf.cos(radian*taxiLat)*tf.cos(radian*taxiLon-
radian*126.8943311)+tf.sin(radian*37.4685225)*tf.sin(radian*taxiLat))
tmpDistance=[]
tmpDistance.append(taxiId)
tmpDistance.append(distanceValue)
distanceList.append(tmpDistance)
# result sort
sId,distances=zip(*distanceList)
indices = tf.nn.top_k(distances, k=len(distances)).indices
gather=tf.gather(sId, indices[::-1])[0:5]
result=tf.Variable(gather,validate_shape=False)
print "Done training!"
# serving
import os
from tensorflow.python.util import compat
model_version = 1
path = os.path.join("Taximodel", str(model_version))
builder = tf.saved_model.builder.SavedModelBuilder(path)
with tf.Session() as sess:
builder.add_meta_graph_and_variables(
sess,
[tf.saved_model.tag_constants.SERVING],
signature_def_map= {
"serving_default":
tf.saved_model.signature_def_utils.predict_signature_def(
inputs= {"userLat": userLat, "userLon":userLon},
outputs= {"result": result})
})
builder.save()
print 'Done exporting'