2016-12-15 5 views
2

Я создал модель в тензорном потоке нейронной сети. Я сохранил модель и восстановил ее в другом файле python.Восстановленная модель в тензорном потоке и предсказания

код ниже:

def restoreModel(): 
    prediction = neuralNetworkModel(x) 
    tf_p = tensorFlow.nn.softmax(prediction) 
    temp = np.array([2,1,541,161124,3,3]) 
    temp = np.vstack(temp) 

    with tensorFlow.Session() as sess: 
     new_saver = tensorFlow.train.import_meta_graph('model.ckpt.meta') 
     new_saver.restore(sess, tensorFlow.train.latest_checkpoint('./')) 
     all_vars = tensorFlow.trainable_variables() 

     tensorFlow.initialize_all_variables().run() 
     sess.run(tensorFlow.initialize_all_variables()) 
     predict = sess.run([tf_p], feed_dict={ 
      tensorFlow.transpose(x): temp, 
      y : *** 
     }) 

когда «Темп» переменной в том, что я хочу, чтобы предсказать! X - это векторная форма, и я «транспонировал» ее, чтобы соответствовать формам. Я не понимаю, что мне нужно написать в переменной feed_dict.

ответ

2

Я отвечаю поздно, но, возможно, он может быть полезен. feed_dict используется для придания тензорному потоку значений, которые вы хотите, чтобы ваши заполнители принимали. fetches (первый аргумент run) - это список результатов, которые вы хотите. Ключи feed_dict и элементы fetches должны быть либо имена тензоров (я не пробовал, хотя) или переменные, которые вы можете получить

graph = tf.get_default_graph() 
var = graph.get_operation_by_name('name_of_operation').outputs[0] 

Maybe graph.get_tensor_by_name('name_of_operation:0') тоже работает, я не пробовал.

По умолчанию имя заполнителя - это просто «Placeholder», «Placeholder_1» и т. Д., Следуя порядку создания в определении графика.

Смежные вопросы