小编pfm*_*pfm的帖子

在Scipy中,curve_fit如何以及为什么计算参数估计的协方差

我一直在scipy.optimize.leastsq用来拟合一些数据.我想在这些估计值上得到一些置信区间,所以我查看cov_x输出但是文档很清楚这是什么以及如何从中得到我的参数的协方差矩阵.

首先,它说它是一个雅可比行列式,但在笔记中它也说" cov_x是雅各比式的雅可比近似",所以它实际上不是雅可比,而是一个使用雅可比的近似的Hessian.以下哪些陈述是正确的?

其次这句话对我来说很困惑:

该矩阵必须乘以残差方差,以得到参数估计的协方差 - 见curve_fit.

我确实去看看curve_fit它们所处的源代码:

s_sq = (func(popt, *args)**2).sum()/(len(ydata)-len(p0))
pcov = pcov * s_sq
Run Code Online (Sandbox Code Playgroud)

这相当于乘cov_xs_sq,但我无法找到任何参考这个公式.有人能解释为什么这个等式是正确的吗?我的直觉告诉我它应该是另一种方式,因为cov_x它应该是一个衍生物(雅可比或黑森),所以我在想: 我想要的东西cov_x * covariance(parameters) = sum of errors(residuals)在哪里sigma(parameters).

如何连接事物curve_fit正在做我所看到的例如.维基百科:http: //en.wikipedia.org/wiki/Propagation_of_uncertainty#Non-linear_combinations

python curve scipy

31
推荐指数
3
解决办法
2万
查看次数

Tensorflow 估计器 ValueError:logits 和标签必须具有相同的形状 ((?, 1) vs (?,))

我对 ML 比较陌生,以为我会从 keras 开始。在这里,我使用二元交叉熵将电影评论分类为正面或负面。因此,当我尝试使用 tensorflow estimator 包装我的 keras 模型时,出现错误:

Tensorflow 估计器 ValueError:logits 和标签必须具有相同的形状 ((?, 1) vs (?,))

我使用 sigmoid 激活作为我的最后一层,我猜我在这里遗漏了一些微不足道的东西。有什么帮助吗?

from tensorflow import keras
import tensorflow as tf
print("Tensorflow {} loaded".format(tf.__version__))
import numpy as np

keras.__version__
from keras.datasets import imdb

(train_data, train_labels), (test_data, test_labels) = imdb.load_data(num_words=10000)
def vectorize_sequences(sequences, dimension=10000):
    # Create an all-zero matrix of shape (len(sequences), dimension)
    results = np.zeros((len(sequences), dimension))
    for i, sequence in enumerate(sequences):
        results[i, sequence] = 1.  # set specific indices of results[i] to 1s …
Run Code Online (Sandbox Code Playgroud)

python keras tensorflow

23
推荐指数
5
解决办法
6万
查看次数

在TensorFlow中无需替换给定的非均匀分布即可进行抽样

我正在寻找类似于numpy.random.choice(range(3),replacement=False,size=2,p=[0.1,0.2,0.7])
TensorFlow的东西.

最接近Op它似乎是tf.multinomial(tf.log(p))将logits作为输入,但它不能在没有替换的情况下进行采样.在TensorFlow中,是否还有其他方法可以从非均匀分布中进行采样?

谢谢.

random choice multinomial tensorflow

8
推荐指数
1
解决办法
1193
查看次数

Tensorflow`tf.layers.batch_normalization`不会将更新操作添加到`tf.GraphKeys.UPDATE_OPS`

以下代码(复制/粘贴runnable)说明了使用tf.layers.batch_normalization.

import tensorflow as tf
bn = tf.layers.batch_normalization(tf.constant([0.0]))
print(tf.get_collection(tf.GraphKeys.UPDATE_OPS))

> []     # UPDATE_OPS collection is empty
Run Code Online (Sandbox Code Playgroud)

使用TF 1.5,文档(引用如下)明确指出在这种情况下UPDATE_OPS不应为空(https://www.tensorflow.org/api_docs/python/tf/layers/batch_normalization):

注意:训练时,需要更新moving_mean和moving_variance.默认情况下,更新操作被放入 tf.GraphKeys.UPDATE_OPS,因此需要将它们作为依赖项添加到train_op.例如:

update_ops = tf.get_collection(tf.GraphKeys.UPDATE_OPS)
with tf.control_dependencies(update_ops):
    train_op = optimizer.minimize(loss)
Run Code Online (Sandbox Code Playgroud)

python tensorflow

8
推荐指数
1
解决办法
2085
查看次数

了解TensorFlow中的操作注册和内核链接

我是TensorFlow的新手,现在正在研究定制的op开发.我已经阅读了官方教程,但我觉得很多事情都发生在幕后,我并不总是想把我的自定义操作放在user_ops目录中.

因此,我了一个例子word2vec

它使用自定义的"Skipgram"操作,其注册定义如下:
/word2vec_o​​ps.cc
,其内核实现位于:
/word2vec_kernels.cc

查看构建文件,我尝试构建单个目标

1)bazel build -c opt tensorflow/models/embedding:word2vec_ops
这会按预期生成一堆目标文件.

2)bazel build -c opt tensorflow/models/embedding:word2vec_kernels
同样的.

3) bazel build -c opt tensorflow/models/embedding:word2vec_kernels:gen_word2vec

最后一个版本使用自定义规则,即tf_op_gen_wrapper_py https://github.com/tensorflow/tensorflow/blob/master/tensorflow/tensorflow.bzl#L197-L231

有趣的是,这只取决于操作注册而不是内核本身.

毕竟,如果我py_binary使用自己构建自己

bazel build -c opt tensorflow/models/embedding:word2vec

它工作正常,但我没有看到内核c ++代码链接的位置和方式?

另外,我还想了解tf_op_gen_wrapper_py操作注册的幕后规则和整个编译/链接过程.

谢谢.

c++ swig kernel registration tensorflow

7
推荐指数
1
解决办法
5679
查看次数

ImportError:libcublas.so.9.0:无法打开共享库文件:没有这样的文件或目录(Windows)

我正在尝试安装tensorflow的对象检测模块,但是在运行以下命令时:

python3 object_detection / builders / model_builder_test.py

我收到以下错误。我已经安装了CUDA 8.0、9.0、9.1和cuDNN 6和7,但仍然出现以下错误。感谢您的建议,谢谢!

追溯(最近一次通话):文件“ /usr/local/lib/python3.5/dist-packages/tensorflow/python/pywrap_tensorflow.py”,行58,来自tensorflow.python.pywrap_tensorflow_internal import *文件“ / usr /local/lib/python3.5/dist-packages/tensorflow/python/pywrap_tensorflow_internal.py“,第28行,在_pywrap_tensorflow_internal = swig_import_helper()文件中,” / usr / local / lib / python / 3.5-dist-packages / tensorflow / python / pywrap_tensorflow_internal.py”,第24行,在swig_import_helper _mod = imp.load_module('_ pywrap_tensorflow_internal',fp,路径名,描述),文件“ /usr/lib/python3.5/imp.py”,第242行,在load_module返回中load_dynamic(名称,文件名,文件)文件“ /usr/lib/python3.5/imp.py”,第342行,在load_dynamic中返回_load(spec)ImportError:libcublas.so.9.0:无法打开共享对象文件:没有这样的文件或目录

在处理上述异常期间,发生了另一个异常:

追溯(最近一次通话):

从tensorflow导入tf文件在导入tensorflow中的文件“ object_detection / builders / model_builder_test.py”,第18行,在tf文件中输入文件“ /usr/local/lib/python3.5/dist-packages/tensorflow/init.py”。 python import *文件“ /usr/local/lib/python3.5/dist-packages/tensorflow/python/init.py”,行49,来自tensorflow.python import pywrap_tensorflow文件“ / usr / local / lib / python3。 5 / dist-packages / tensorflow / python / pywrap_tensorflow.py“,行74,在抬高ImportError(msg)ImportError:Traceback(最近一次调用为最后):文件” /usr/local/lib/python3.5/dist-packages /tensorflow/python/pywrap_tensorflow.py”,第58行,来自tensorflow.python.pywrap_tensorflow_internal import *文件“ /usr/local/lib/python3.5/dist-packages/tensorflow/python/pywrap_tensorflow_internal.py”,第28行,在_pywrap_tensorflow_internal = swig_import_helper()文件中,“ …

python-3.x tensorflow

6
推荐指数
1
解决办法
2768
查看次数

如何使用 pytest 在测试用例中运行固定装置两次?

这里我使用这个固定装置生成一个带有 iprange 的网络 obj。虽然在某些情况下,我需要在同一个测试中生成 2 个不同的网络。

@pytest.fixture(scope="function")
def fixture_user_create_network_with_iprange(get_user_token,
                                          fixture_user_create_network,
                                          fixture_user_create_iprange,
                                          request):
    token = get_user_token
    network_uuid = fixture_user_create_network
    iprange_uuid = fixture_user_create_iprange
    add_ipranges_to_networks(token,network_uuid,iprange_uuid)

    return network_uuid
Run Code Online (Sandbox Code Playgroud)

但在同一个测试中,夹具只能运行一次。我创建了另一个名为 的灯具,它是原始灯具的副本,但名称不同。fixture_user_create_2nd_network_with_iprange

因为这 2 个装置也使用fixture_user_create_network, fixture_user_create_iprange,在测试中只运行一次。我只有一个网络对象。

所以我想知道,

  • 如果我可以让灯具在测试中运行两次,或者
  • 我是否可以根据需要随时在测试用例中调用夹具。

python pytest

5
推荐指数
1
解决办法
3658
查看次数

TensorFlow 到 Keras 张量

我正在尝试使用此博客的信息混合 TensorFlow 张量和 Keras 张量:

但当输出需要是 Keras 张量而不是 TensorFlow 张量时,问题就会出现在最后一层。有没有简单的方法可以直接转换?或者是否有 Keras 函数可以进行双线性调整大小?

finalOut = predict_flow2
finalOut = tf.image.resize_bilinear(finalOut, tf.stack([h, w]), align_corners=True)
model = Model(input=input, output=finalOut)
model.summary()
Run Code Online (Sandbox Code Playgroud)

错误消息:

类型错误:模型的输出张量必须是 Keras 张量。找到:Tensor("ResizeBilinear:0", shape=(?, 320, 1152, 2), dtype=float32)

python keras tensorflow

5
推荐指数
1
解决办法
7819
查看次数

tf.Session()中的图参数有什么作用?

我无法理解中的图论点tf.Session()。我尝试查找TensorFlow网站:链接,但了解得不多。

我试图找出tf.Session()和之间的区别tf.Session(graph=some_graph_inserted_here)

问题背景

代码A(无效):

def predict():
    with tf.name_scope("predict"):
        with tf.Session() as sess:
            saver = tf.train.import_meta_graph("saved_models/testing.meta")
            saver.restore(sess, "saved_models/testing")
            loaded_graph = tf.get_default_graph()
            output_ = loaded_graph.get_tensor_by_name('loss/network/output_layer/BiasAdd:0')
            _x = loaded_graph.get_tensor_by_name('x:0')
            print sess.run(output_, feed_dict={_x: np.array([12003]).reshape([-1, 1])})
Run Code Online (Sandbox Code Playgroud)

此代码给出以下错误:ValueError: cannot add op with name hidden_layer1/kernel/Adam as that name is already used尝试在以下位置加载图形时saver = tf.train.import_meta_graph("saved_models/testing.meta")

代码B(工作中):

def predict():
    with tf.name_scope("predict"):
        loaded_graph = tf.Graph()
        with tf.Session(graph=loaded_graph) as sess:
            saver = tf.train.import_meta_graph("saved_models/testing.meta")
            saver.restore(sess, "saved_models/testing")
            output_ = loaded_graph.get_tensor_by_name('loss/network/output_layer/BiasAdd:0')
            _x = loaded_graph.get_tensor_by_name('x:0') …
Run Code Online (Sandbox Code Playgroud)

machine-learning tensorflow

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

使用 python 在 AWS S3 存储桶中搜索特定文件

我有 AWS S3 访问权限,并且存储桶内有近 300 个文件。我需要通过模式匹配或搜索从该存储桶下载单个文件,因为我不知道确切的文件名(假设文件以 .csv 格式结尾)。
这是我的示例代码,显示了存储桶内的所有文件

def s3connection(credentialsdict):
    """
    :param access_key: Access key for AWS to establish S3 connection
    :param secret_key: Secret key for AWS to establish S3 connection
    :param file_name: file name of the billing file(csv file)
    :param bucket_name: Name of the bucket which consists of billing files
    :return: status, billing_bucket, billing_key
    """
    os.environ['S3_USE_SIGV4'] = 'True'
    conn = S3Connection(credentialsdict["access_key"], credentialsdict["secret_key"], host='s3.amazonaws.com')
    billing_bucket = conn.get_bucket(credentialsdict["bucket_name"], validate=False)
    try:
        billing_bucket.get_location()
    except S3ResponseError as e:
        if e.status == 400 and …
Run Code Online (Sandbox Code Playgroud)

python amazon-s3 boto botocore boto3

3
推荐指数
1
解决办法
2万
查看次数

Bazel 错误:“未找到测试目标,但已请求测试”

我有一个小作业,我使用 TensorFlow 创作音乐:

https://github.com/tensorflow/magenta

当我运行代码时--- bazel test //magenta:all ,出现以下错误:

警告:/home/admin/.cache/bazel/_bazel_admin/fb30f33370a5b97d4f9b1dde06f8f344/external/protobuf/protobuf.bzl:90:19: 变量 HOST_CFG 和 DATA_CFG 被“弃用”对应的“字符串”数据托管。
警告:/home/admin/.cache/bazel/_bazel_admin/fb30f33370a5b97d4f9b1dde06f8f344/external/protobuf/protobuf.bzl:96:28: 变量 HOST_CFG 和 DATA_CFG 被“弃用”对应的“字符串”数据托管。
信息:找到 2 个目标和 0 个测试目标...
信息:经过时间:4.977s,关键路径:0.66s
错误:未找到测试目标,但已请求测试。

bazel tensorflow magenta

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