2017-09-18 3 views
0

Ordinateur: Win10 édition Accueil_lstm_ops.dll ne peut être trouvé dans le tensorflow, il fait dans mon chemin

Editeur: Anaconda/Spyder

tensorflow: tensorflow-gpu

import tensorflow as tf 
import keras 
from tensorflow.examples.tutorials.mnist import input_data 

tf.set_random_seed(1) 

mnist = input_data.read_data_sets('MNIST_data/', one_hot=True) 

lr = 0.001 
training_iters = 100000 
batch_size = 128 

n_inputs = 28 
n_steps = 28  
n_hidden_units = 128 
n_classes = 10  

x = tf.placeholder(tf.float32, [None, n_steps, n_inputs]) 
y = tf.placeholder(tf.float32, [None, n_classes]) 

weights = {  
    'in': tf.Variable(tf.random_normal([n_inputs, n_hidden_units])), 
    'out': tf.Variable(tf.random_normal([n_hidden_units, n_classes])) 
} 
biases = { 
    'in': tf.Variable(tf.constant(0.1, shape=[n_hidden_units, ])), 
    'out': tf.Variable(tf.constant(0.1, shape=[n_classes, ])) 
} 


def RNN(X, weights, biases): 
    # hidden layer for input to cell 

    X = tf.reshape(X, [-1, n_inputs]) 
    X_in = tf.matmul(X, weights['in']) + biases['in'] 
    X_in = tf.reshape(X_in, [-1, n_steps, n_hidden_units]) 

    # cell 
    ########################################## 

    cell = tf.contrib.rnn.BasicLSTMCell(n_hidden_units) 

    init_state = cell.zero_state(batch_size, dtype=tf.float32) 

    outputs, final_state = tf.nn.dynamic_rnn(cell, X_in, 
    initial_state=init_state, time_major=False) 

    outputs = tf.unstack(tf.transpose(outputs, [1,0,2])) 
    results = tf.matmul(outputs[-1], weights['out']) + biases['out'] 

pred = RNN(x, weights, biases) 
cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=pred, labels=y)) 
train_op = tf.train.AdamOptimizer(lr).minimize(cost) 

correct_pred = tf.equal(tf.argmax(pred, 1), tf.argmax(y, 1)) 
accuracy = tf.reduce_mean(tf.cast(correct_pred, tf.float32)) 

with tf.Session() as sess: 
    tf.global_variables_initializer().run() 
    step = 0 
    while step * batch_size < training_iters: 
     batch_xs, batch_ys = mnist.train.next_batch(batch_size) 
     batch_xs = batch_xs.reshape([batch_size, n_steps, n_inputs]) 
     sess.run([train_op], feed_dict={x: batch_xs,y: batch_ys,}) 

     if step % 20 == 0: 
      print(sess.run(accuracy, feed_dict={x: batch_xs,y: batch_ys,})) 
     step += 1 

puis je cours ce code RNN, il me montre une erreur confuse a déclaré _lstm_ops.dll pas trouvé ... cependant je suis très sûr que ce fichier .dll réellement stocké dans ce chemin (C: \ Users \ 清 山 \ AppData \ Local \ conda \ conda \ envs \ opencvtest \ lib \ paquets-de-site \ tensorflow \ contrib \ rnn \ python \ ops_lstm_ops.dll) quelqu'un peut m'aider? QQ

packages\keras\engine\__init__.py", line 8, in <module> 
     from .training import Model 

    File "C:\Users\清山\AppData\Local\conda\conda\envs\opencvtest\lib\site-packages\keras\engine\training.py", line 25, in <module> 
    from .. import callbacks as cbks 

    File "C:\Users\清山\AppData\Local\conda\conda\envs\opencvtest\lib\site-packages\keras\callbacks.py", line 26, in <module> 
    from tensorflow.contrib.tensorboard.plugins import projector 

    File "C:\Users\清山\AppData\Local\conda\conda\envs\opencvtest\lib\site-packages\tensorflow\contrib\__init__.py", line 27, in <module> 
    from tensorflow.contrib import cudnn_rnn 

    File "C:\Users\清山\AppData\Local\conda\conda\envs\opencvtest\lib\site-packages\tensorflow\contrib\cudnn_rnn\__init__.py", line 28, in <module> 
    from tensorflow.contrib.cudnn_rnn.python.ops.cudnn_rnn_ops import CudnnGRU 

    File "C:\Users\清山\AppData\Local\conda\conda\envs\opencvtest\lib\site-packages\tensorflow\contrib\cudnn_rnn\python\ops\cudnn_rnn_ops.py", line 21, in <module> 
    from tensorflow.contrib.rnn.python.ops import lstm_ops 

    File "C:\Users\清山\AppData\Local\conda\conda\envs\opencvtest\lib\site-packages\tensorflow\contrib\rnn\python\ops\lstm_ops.py", line 36, in <module> 
    resource_loader.get_path_to_datafile("_lstm_ops.so")) 

    File "C:\Users\清山\AppData\Local\conda\conda\envs\opencvtest\lib\site-packages\tensorflow\contrib\util\loader.py", line 55, in load_op_library 
    ret = load_library.load_op_library(path) 

    File "C:\Users\清山\AppData\Local\conda\conda\envs\opencvtest\lib\site-packages\tensorflow\python\framework\load_library.py", line 64, in load_op_library 
    None, None, error_msg, error_code) 

NotFoundError: C:\Users\清山\AppData\Local\conda\conda\envs\opencvtest\lib\site-packages\tensorflow\contrib\rnn\python\ops\_lstm_ops.dll not found 

BTW-je obtenir quelques informations dit mot chinois dans mon chemin va se erreur, mais je cours d'autres code comme CNN ne montre pas ce genre d'erreurs! et je suis aussi tryimg changer mon mot chinois en mot eng sur le chemin, mais mon ordinateur est Home Edition qui ne peut pas me laisser changer ... Orz.Orz.

Répondre

0

S'il vous plaît sachez que l'anglais n'est pas ma langue maternelle, et je peux faire quelques erreurs confuses.

J'avais le même problème que vous. Pour aller droit au but, la raison du problème était le caractère chinois comme vous le pensez.

Je suis japonais, et j'ai utilisé un caractère chinois comme nom d'utilisateur. Par conséquent, mon chemin inclus le caractère chinois comme vous.

J'ai créé un nouveau compte sur Windows, dont le nom n'inclut pas le caractère chinois. puis j'ai tout réinstallé.

alors, mon cordon (tf.contrib.data.Dataset ...) travaillé.

Peut-être que certains modules n'acceptent pas Unicode, alors que d'autres le font.

Si vous allez ajouter un compte sur Windows 10, vous pouvez avoir un problème car parfois Windows 10 a des bogues à propos de cette opération.
Dans ce cas, essayez [net User qingshan/add] dans l'invite de commande.
Vous pouvez créer un nouveau compte.