相关疑难解决方法(0)

FailedPreconditionError:尝试在Tensorflow中使用未初始化

我正在使用TensorFlow教程,该教程使用"怪异"格式上传数据.我想使用NumPy或pandas格式的数据,以便我可以将它与scikit-learn结果进行比较.

我从Kaggle获得了数字识别数据:https://www.kaggle.com/c/digit-recognizer/data .

这里是TensorFlow教程的代码(工作正常):

# Stuff from tensorflow tutorial 
import tensorflow as tf

sess = tf.InteractiveSession()

x = tf.placeholder("float", shape=[None, 784])
y_ = tf.placeholder("float", shape=[None, 10])

W = tf.Variable(tf.zeros([784, 10]))
b = tf.Variable(tf.zeros([10]))

y = tf.nn.softmax(tf.matmul(x, W) + b)

cross_entropy = -tf.reduce_sum(y_ * tf.log(y))

train_step = tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy)
Run Code Online (Sandbox Code Playgroud)

在这里,我读取数据,去掉目标变量并将数据分成测试和训练数据集(这一切都正常):

# Read dataframe from training data
csvfile='train.csv'
from pandas import DataFrame, read_csv
df = read_csv(csvfile)

# Strip off the target data and make it a separate …
Run Code Online (Sandbox Code Playgroud)

python classification pandas tensorflow

61
推荐指数
3
解决办法
9万
查看次数

在TensorFlow中有没有办法初始化未初始化的变量?

在TensorFlow中初始化变量的标准方法是

init = tf.initialize_all_variables()
sess = tf.Session()
sess.run(init)
Run Code Online (Sandbox Code Playgroud)

在运行了一段时间的学习后,我创建了一组新的变量,但是一旦我初始化它们,它就会重置我现有的所有变量.目前我的方法是保存我需要的所有变量,然后在tf.initalize_all_variables调用之后重新应用它们.这有效,但有点丑陋和笨重.我在文档中找不到这样的东西......

有没有人知道刚刚初始化未初始化变量的任何好方法?

python tensorflow

48
推荐指数
3
解决办法
4万
查看次数

Python TensorFlow:如何使用优化器和import_meta_graph重新启动训练?

我正试图通过拾取TensorFlow中的模型训练来重新开始.我想使用最近添加的(0.12 +我认为)import_meta_graph(),以便不重建图形.

我见过这方面的解决方案,例如Tensorflow:如何保存/恢复模型?,但是我遇到了AdamOptimizer的问题,特别是我得到了一个ValueError: cannot add op with name <my weights variable name>/Adam as that name is already used错误.这可以通过初始化来修复,但我的模型值会被清除!

还有其他答案和一些完整的例子,但它们似乎总是较旧,因此不包括较新的import_meta_graph()方法,或者没有非张量优化器.我能找到的最接近的问题是tensorflow:保存和恢复会话,但没有最终的明确解决方案,这个例子非常复杂.

理想情况下,我想要一个简单的可运行示例从头开始,停止,然后再次拾起.我有一些有用的东西(下图),但也想知道我是否遗漏了什么.当然,我不是唯一一个这样做的人吗?

tensorflow

16
推荐指数
1
解决办法
9743
查看次数

重置tensorflow优化器

我从一个保存的模型加载,我希望能够重置一个tensorflow优化器,如Adam Optimizer.理想情况如下:

sess.run([tf.initialize_variables(Adamopt)])
Run Code Online (Sandbox Code Playgroud)

要么

sess.run([Adamopt.reset])
Run Code Online (Sandbox Code Playgroud)

我试过寻找答案,但还没有找到任何办法.以下是我发现的不解决问题的方法:https: //github.com/tensorflow/tensorflow/issues/634

在TensorFlow中有没有办法初始化未初始化的变量?

Tensorflow:使用Adam优化器

我基本上只想要一种方法来重置Adam Optimizer中的"slot"变量.

谢谢

python optimization tensorflow

7
推荐指数
3
解决办法
3531
查看次数

Tensorflow FailedPreconditionError,但所有变量都已初始化

编辑:尝试了几件事之后,我在代码中添加了以下内容:

with tf.Session(graph=self.graph) as session:
    session.run(tf.initialize_all_variables())
    try:
        session.run(tf.assert_variables_initialized())
    except tf.errors.FailedPreconditionError:
        raise RuntimeError("Not all variables initialized!")
Run Code Online (Sandbox Code Playgroud)

现在,偶尔会失败,即tf.assert_variables_initialized()tf.initialize_all_variables()在执行之前立即引发FailedPreconditionError .有谁知道这怎么会发生?


原始问题:

背景

我在通过Tensorflow创建的基本神经网络上使用GradientDescentOptimizer运行交叉验证(CV)超参数搜索.在看似随机的时刻,我得到了一个FailedPreconditionError,用于不同的变量.例如(帖子末尾的完整堆栈跟踪):

FailedPreconditionError: Attempting to use uninitialized value Variable_5
     [[Node: Variable_5/read = Identity[T=DT_FLOAT, _class=["loc:@Variable_5"], _device="/job:localhost/replica:0/task:0/gpu:0"](Variable_5)]]
Run Code Online (Sandbox Code Playgroud)

有些跑步失败的速度相当快,有些跑步失败了 - 其中一个跑了15个小时没有问题.我在多个GPU上并行运行 - 不是优化本身,而是每个CV折叠.

我检查了什么

这个这篇文章我明白,当尝试使用尚未初始化的变量时会发生此错误tf.initialize_all_variables().但是,我99%肯定我正在这样做(如果没有,我希望它总是失败) - 我将在下面发布代码.

API文档说,

在运行在初始化之前读取tf.Variable的操作时,通常会引发此异常.

"最常见的"表明它也可以在不同的场景中提出.所以,现在主要的问题是:

问题:是否存在可能引发此异常的其他情况,它们是什么?

MLP课程:

class MLP(object):
    def __init__(self, n_in, hidden_config, n_out, optimizer, f_transfer=tf.nn.tanh, f_loss=mean_squared_error,
                 f_out=tf.identity, seed=None, global_step=None, graph=None, dropout_keep_ratio=1):

        self.graph …
Run Code Online (Sandbox Code Playgroud)

python python-2.7 tensorflow

4
推荐指数
1
解决办法
5568
查看次数

在Tensorflow中使用Adadelta优化器时未初始化的值错误

我正在尝试使用Adagrad优化器构建CNN,但我收到以下错误.

tensorflow.python.framework.errors.FailedPreconditionError:试图使用未初始化值Variable_7/Adadelta

[[Node:Adadelta/update_Variable_7/ApplyAdadelta = ApplyAdadelta [T = DT_FLOAT,_class = ["loc:@ Variable_7"],use_locking = false,_device ="/ job:localhost/replica:0/task:0/cpu:0 "](Variable_7,Variable_7/Adadelta,Variable_7/Adadelta_1,Adadelta/lr,Adadelta/rho,Adadelta/epsilon,gradients/add_3_grad/tuple/control_dependency_1)]]由op u'Adadelta/update_Variable_7/ApplyAdadelta'引起,

optimizer = tf.train.AdadeltaOptimizer(learning_rate).minimize(cross_entropy)

我尝试在adagrad语句之后重新初始化会话变量,如本文所述,但这也没有帮助.

我怎样才能避免这个错误?谢谢.

Tensorflow:使用Adam优化器

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

def conv2d(x, W):
  return tf.nn.conv2d(x, W, strides=[1, 1, 1, 1], padding='SAME')

def max_pool_2x2(x):
  return tf.nn.max_pool(x, ksize=[1, 2, 2, 1],
                        strides=[1, 2, 2, 1], padding='SAME')

def weight_variable(shape):
  initial = tf.truncated_normal(shape, stddev=0.1)
  return tf.Variable(initial)

def bias_variable(shape):
  initial = tf.constant(0.1, shape=shape)
  return tf.Variable(initial)


mnist = input_data.read_data_sets("/tmp/data/", one_hot=True)

# Parameters
learning_rate …
Run Code Online (Sandbox Code Playgroud)

python mnist deep-learning tensorflow

0
推荐指数
1
解决办法
1574
查看次数