小编Eri*_*uld的帖子

为什么TensorFlow的`tf.data`包会减慢我的代码?

我只是学习使用TensorFlow的tf.dataAPI,而且我发现它使我的代码速度下降了很多,按时间计算.我想,这与它应该做的相反.我写了一个简单的线性回归程序来测试它.

Tl; Dr:tf.data如果您正在使用完整的批次培训,则使用100,000个训练数据,将每个时期的时间减少大约十倍.如果你使用较小的批次更糟糕.500个训练数据则相反.

我的问题:发生了什么事?我的实施有缺陷吗?我读过的其他消息来源的tf.data速度提高了大约30%.

import tensorflow as tf 
import numpy as np
import timeit

import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
tf.logging.set_verbosity(tf.logging.ERROR)

n_epochs = 10
input_dimensions_list = [10]

def function_to_approximate(x):
    return np.dot(x, random_covector).astype(np.float32) + np.float32(.01) * np.random.randn(1,1).astype(np.float32)

def regress_without_tfData(n_epochs, input_dimension, training_inputs, training_labels):
    tf.reset_default_graph()
    weights = tf.get_variable("weights", initializer=np.random.randn(input_dimension, 1).astype(np.float32))

    X = tf.placeholder(tf.float32, shape=(None, input_dimension), name='X')
    Y = tf.placeholder(tf.float32, shape=(None, 1), name='Y')
    prediction = tf.matmul(X,weights)
    loss = tf.reduce_mean(tf.square(tf.subtract(prediction, Y)))
    loss_op = tf.train.AdamOptimizer(.01).minimize(loss)

    init = tf.global_variables_initializer()

    with …
Run Code Online (Sandbox Code Playgroud)

python machine-learning python-3.x deep-learning tensorflow

18
推荐指数
4
解决办法
1168
查看次数

Xcode:在变量视图中更改字体

调试器的变量视图中的字体非常小.有没有办法扩大它?谢谢.

我找不到在首选项 - >字体和颜色中设置它的方法,无论是在源代码还是控制台上.

我的意思是这张照片中左下角的部分.

在此输入图像描述

xcode font-size

8
推荐指数
2
解决办法
311
查看次数

__dict__不了解某个类的某些属性

如果我上课

class MyClass:
    """A simple example class"""
    i = 12345

    def f(self):
        return 'hello world'
Run Code Online (Sandbox Code Playgroud)

然后在控制台中说

x=MyClass()
x.counter = 1
vars(x) # returns {'counter': 1}
x.__dict__ # returns {'counter': 1}
Run Code Online (Sandbox Code Playgroud)

为什么不知道x的i属性?我确信这是因为我对我在Python中如何定义类的各种属性的误解.

在这方面,Python 2/3之间有什么区别吗?打电话dir(x)给了我所有我期望的东西.

我怀疑其他初学者已经问过这个问题,但在这个阶段我不知道在问题标题中寻找正确的事情.网站建议的所有内容都不正确.

python class python-3.x

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

numpy 数组的视图和浅拷贝有什么区别?

在 NumPy 中,我知道切片数组会给你一个“视图”,在我看来这与浅拷贝完全相同。它们有何不同?

python numpy copy

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

Tensorflow:使用as_default().__ enter __()设置默认会话

我写

import tensorflow as tf
x = tf.Session()
x.as_default().__enter__()
print(tf.get_default_session()) # prints "None"
Run Code Online (Sandbox Code Playgroud)

为什么我没有完成让x成为默认会话的任务?我知道我可以在“ with”块中执行此操作,但是我想知道为什么这不起作用。

请注意,如果我写

import tensorflow as tf
with tf.Session().as_default():
    print(tf.get_default_session()) # shows <tensorflow.python.client.session.Session object at 0x114217a90> 
Run Code Online (Sandbox Code Playgroud)

这两段代码如何做不同的事情?

另外,如果我只是写

import tensorflow as tf
tf.Session()
Run Code Online (Sandbox Code Playgroud)

那会不会创建一个我无法关闭的无名会话,所以它将一直运行直到重启内核?有没有办法检查当前打开的会话?

python machine-learning tensorflow

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

使用None定义默认参数:如果是数组,该怎么办?

我正在将一个参数传递给一个函数,以便我想以通常的方式延迟给出默认参数:

def f(x = None):
    if x == None:
        x = ...
Run Code Online (Sandbox Code Playgroud)

唯一的问题是x可能是一个numpy数组.然后x == None返回一个布尔数组,我无法调整.编译器建议使用.any().all()

但如果我写

def f(x = None):
    if (x == None).any():
        x = ...
Run Code Online (Sandbox Code Playgroud)

如果x转到其默认值,这将无效,因为这None == None是一个布尔,没有.any().all()方法.我的举动是什么?

python parameters arguments numpy

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

相当于 Haskell 中具有停止条件的生成器

假设我想iterate step x0在 Haskell 中构建一个列表,但具有包含终止条件。所以在Python中这将是list(my_gen)例如

def my_gen():
    x = x0
    while not done(x):
        x = step(x)
        yield x
Run Code Online (Sandbox Code Playgroud)

编辑:如果我想包含,这应该yield x在循环之前有一个额外的x0。)

一种方法是编写我自己的takeWhileInclusive并说

takeWhileInclusive (not . done) . iterate step x0
Run Code Online (Sandbox Code Playgroud)

这是实现此目的的Haskell-y 方式(或Haskell -y 方式)吗?step x尝试为何时为真添加一些哨兵值done x然后使用似乎不自然takeWhile

特别是我正在考虑LeetCode上水问题最多的容器,并用类似的方法解决它

maxWith volume . smartSteps (0, n)
 where smartSteps = takeWhileInclusive (\(i,j) -> j - i > 1) . iterate step
Run Code Online (Sandbox Code Playgroud)

step增加i …

haskell functional-programming generator

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

使用 Haskell 处理 dfs 中的后继者

考虑以下 Python 函数,给定节点的后继者,该函数访问它们并收集结果。(实际上,这个逻辑将构成递归visit函数的一部分。)

from typing import Any, Callable, Tuple, List, Set
Node_key = Any
Discovered = Set[Node_key]
Result = Any

def get_successor_results(visit: Callable[[Discovered, Node_key], 
                                          Tuple[Discovered, Result]],
                          successors: List[Node_key],
                          disc: Discovered) -> List[Result]:
    results = []
    for succ in successors:
        if succ not in disc:
            disc, result = visit(disc, succ)
            results.append(result)
    return results
Run Code Online (Sandbox Code Playgroud)

(就上下文而言,这将是 df-traverse 函数的一部分,给定一个图和一个函数,该函数combiner :: Node_key -> [Result] -> Result相当于构建深度优先森林并调用fold-tree combiner每棵树。)

我的问题:你会如何用get_successor_resultsHaskell 写作?

一些想法:

get-successor-results visit successors disc = 
  reverse …
Run Code Online (Sandbox Code Playgroud)

haskell fold depth-first-search

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

如何在Spyder的变量资源管理器中查看类对象

这是这个问题的重复。调试时,似乎无法在Python的变量资源管理器中查看类的实例。

那里的答案声称这已解决,所以我想知道自己在做错什么。

spyder anaconda

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

VS代码:告诉pylint忽略下一行?

寻找一种告诉pylint忽略下一行错误的方法。JavaScript的方法在这里给出,只是

// @ts-ignore
Run Code Online (Sandbox Code Playgroud)

我为Python尝试了一些逻辑上的变体,但没有成功。

python visual-studio-code

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

对于可折叠设备

forflip traverse

forMflip mapM

依此类推for_,等等。

关于什么foldMap?很孤独。

flip foldMap = ?

haskell functional-programming foldable

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