小编kri*_*nab的帖子

python sympy计算积分余弦函数的错误

所以我直接从sympy文档中尝试了一个例子,我收到了一个奇怪的错误.我正在使用python 3.2和sympy 0.7.3.我一直在ipython笔记本上工作,虽然我不认为这应该有所作为.错误是每当我创建一个"x"符号并尝试集成math.cos(x)时,我得到一个错误,说"无法将表达式转换为浮点数".

这是一个代码示例.这是从sympy文档中获取的.

import sympy
import math
x = sympy.Symbol('x')
sympy.integrate(x**2 * math.exp(x) * math.cos(x), x)
Run Code Online (Sandbox Code Playgroud)

结果的错误消息是:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-123-84e55454fb60> in <module>()
----> 1 sympy.integrate(x**2 * math.exp(x) * math.cos(x), x)

/usr/local/lib/python3.2/dist-packages/sympy/core/expr.py in __float__(self)
242         if result.is_number and result.as_real_imag()[1]:
243             raise TypeError("can't convert complex to float")
--> 244         raise TypeError("can't convert expression to float")
245 
246     def __complex__(self):

TypeError: can't convert expression to float
Run Code Online (Sandbox Code Playgroud)

任何建议,将不胜感激.

python math sympy python-3.x ipython-notebook

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

如何从 Google Earth Engine 获取图像集的下载网址

我对 Google Earth Engine 还比较陌生,但有一个关于获取图像集合中每个图像的下载 URL 的问题。问题正是如此,鉴于我已将每个图像削减到合理的大小,如何获取图像集合中每个图像的下载 url 集。

请注意,我确实浏览了 Stackoverflow,发现了一个有关将单个图像下载到 google Drive 的现有问题,但该问题没有提供有关图像集合的任何信息。

如何使用Google Earth引擎的Python API下载图像

以下代码将生成 Landsat 8 图像的一些小图像块。每个补丁的大小只有少数 kb。

import ee
ee.Initialize()
col = ee.ImageCollection('LANDSAT/LC08/C01/T1').select('B8')
col.filterDate('1/1/2015', '1/30/2015')
boundary_region = ee.Geometry.Point([-2.40986111110000012, 26.76033333330000019]).buffer(300)
col.filterBounds(boundary_region)

def clipper(image):
    return image.clip(region)

col.map(clipper)
Run Code Online (Sandbox Code Playgroud)

现在我想下载集合中的每张图像col

Earth Engine 提供了几种迭代图像集合的方法:map()iterate()函数,但显然这两个函数都不适用于下载函数。

现在看来我可以使用以下函数生成单个图像的 url:

boundary_geojson = ee.Geometry.Polygon(boundary_region.bounds().getInfo().coordinates[0]).toGeoJSONString()

def downloader(image): 
    url = ee.data.makeDownloadUrl(
        ee.data.getDownloadId({
            'image': image.serialize(),
            'scale': 30,
            'filePerBand': 'false',
            'name': 'test',
            'region': boundary_geojson,
        }))
    return url
Run Code Online (Sandbox Code Playgroud)

请注意,由于某种原因,我似乎无法让变量boundary_geojson正常工作。

现在这组 url 应该是一个简单的调用 …

python image google-earth-engine

5
推荐指数
0
解决办法
2119
查看次数

matplotlib 等高线图:有关“未找到等高线水平”的警告

我正在研究有关绘制动画的博客文章中的matplotlib.一个示例,其中一个示例涉及等高线图——代码如下。但是,当我运行此代码时,我得到一个UserWarning

 UserWarning: No contour levels were found within the data range.
 warnings.warn("No contour levels were found")
Run Code Online (Sandbox Code Playgroud)

该图的代码如下。

x = np.linspace(-3,3,91)
t = np.linspace(0,25,30)
y = np.linspace(-3,3,91)
X3, Y3, T3 = np.meshgrid(x,y, t)

sinT3 = np.sin(2*np.pi*T3/T3.max(axis=2)[...,np.newaxis])
G = (X3**2 + Y3**2)*sinT3
contour_opts = {'levels': np.linspace(-9, 9, 10),
                'cmap':'RdBu', 'linewidths': 2}
cax = ax.contour(x, y, G[..., 0], **contour_opts)

def animate(i):
    ax.collections = []
    ax.contour(x, y, G[..., i], **contour_opts)
anim = FuncAnimation(fig, animate, interval=100, frames = len(t)-1)

HTML(anim.to_html5_video())
Run Code Online (Sandbox Code Playgroud)

情节仍然有效,但我不断收到用户警告。 …

python plot matplotlib contour

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

Tensorflow:在使用 tf.Keras 层或 tf.Estimator API 时,我什么时候需要运行 tf.Session()?

我正在尝试协调来自 TF“Graphs and Sessions”指南和 TF“Keras”指南和 TF Estimators 指南的信息。现在在前者中它说 tf.Session 使计算图可以访问物理硬件以执行图并训练模型。就像学习 TF 的初始教程要求您使用 Session 来运行任何东西:变量指南、张量指南等。但是,在 TF Keras 指南中,示例似乎在没有任何显式调用tf.Session或通常with tf.Session() as sess:的情况下运行Keras 模型也没有使用 Eager Execution。Estimators API 也是如此。

我有几个代码示例。其中一些使用对会话的调用,而另一些则不使用。我希望有人能澄清使用tf.SessionKeras 层或估算器的要求规则是什么。我的意思是,您似乎可以run_configs为 keras 估算器或标准 TF.estimator 进行设置,并为多 GPU 等进行设置。

以下是功能 API 的 TF Keras 指南中的示例。请注意,没有调用会话:

inputs = tf.keras.Input(shape=(32,))  # Returns a placeholder tensor

# A layer instance is callable on a tensor, and returns a tensor.
x = layers.Dense(64, activation='relu')(inputs)
x = layers.Dense(64, activation='relu')(x)
predictions = layers.Dense(10, activation='softmax')(x) …
Run Code Online (Sandbox Code Playgroud)

python keras tensorflow

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

Julia ML:是否有推荐的数据格式将数据加载到 Flux、Knet、深度学习库

我使用 Tensorflow 进行深度学习工作,但我对 Julia for ML 的一些功能很感兴趣。现在在 Tensorflow 中,协议缓冲区有一个明确的标准——这意味着 TFRecords 格式是将大量数据集加载到 GPU 以进行模型训练的最佳方式。我一直在阅读 Flux、KNET、文档以及其他论坛帖子,看看是否有关于最有效数据格式的任何特别建议。但我还没有找到。

我的问题是,是否有推荐的 Julia ML 库数据格式来促进训练?换句话说,是否有任何明确的数据集格式由于性能不佳而应该避免?

现在,我知道有一个Protobuf.jl库,因此用户仍然可以使用协议缓冲区。我现在计划使用协议缓冲区,因为我可以为 Tensorflow 和 Julia 使用相同的数据格式。然而,我也发现了这篇有趣的 Reddit 帖子,内容是关于用户如何不使用协议缓冲区而只使用直接的 Julia Vectors。

https://www.reddit.com/r/MachineLearning/comments/994dl7/d_hows_julia_language_mit_for_ml/

我知道 Julia ML 库可能与数据存储格式无关。这意味着无论数据以何种格式存储,数据都会被解码为某种向量或矩阵格式。所以在这种情况下,我可以使用任何格式。但只是想确保我没有遗漏文档中的任何内容,或者由于使用错误的数据存储格式而导致的问题或性能下降。

machine-learning julia flux.jl

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

Tensorflow:有没有办法将元数据保存在 TFRecords 文件中

有没有办法在文件创建时将数据集元数据保存在 Tensorflow TFRecords 文件中?

我一直在看新Tensorflow Datasets包装,它真的很不错。他们做了很多很好的工作来简化将标准数据集放入 tensorflow 训练管道的过程。

这个工具的一个很好的特性是它保存了关于数据集的元数据,例如数据集中的示例数量,或训练和测试拆分中的样本等。该DatasetInfo()对象将在内存中保存数据集的元数据。这是从该包的 github 存储库中获取的示例:

    tfds.core.DatasetInfo(
        name='mnist',
        version=1.0.0,
        description='The MNIST database of handwritten digits.',
        urls=[u'http://yann.lecun.com/exdb/mnist/'],
        features=FeaturesDict({
            'image': Image(shape=(28, 28, 1), dtype=tf.uint8),
            'label': ClassLabel(shape=(), dtype=tf.int64, num_classes=10)
        },
        total_num_examples=70000,
        splits={
            u'test': <tfds.core.SplitInfo num_examples=10000>,
            u'train': <tfds.core.SplitInfo num_examples=60000>
        },
        supervised_keys=(u'image', u'label'),
        citation='"""
            @article{lecun2010mnist,
              title={MNIST handwritten digit database},
              author={LeCun, Yann and Cortes, Corinna and Burges, CJ},
              journal={ATT Labs [Online]. Available: http://yann. lecun. com/exdb/mnist},
              volume={2},
              year={2010}
            }
      """',
  )
Run Code Online (Sandbox Code Playgroud)

现在,如果您查看此对象,您会发现它包含 aFeaturesDict和其他对象,当将 TFRecords 文件摄取到 Tensorflow …

python tensorflow

5
推荐指数
0
解决办法
848
查看次数

Scikit:从输入器而不是 Numpy 数组返回数据帧的问题

我正在尝试使用scikit-learn IterativeImputer(). 问题是输入器会将pandas数据帧作为输入,但会返回一个numpy数组而不是原始数据帧。这是取自这篇文章的一个简单示例。

# Create an empty dataset
df = pd.DataFrame()

# Create two variables called x0 and x1. Make the first value of x1 a missing value
df['x0'] = [0.3051,0.4949,0.6974,0.3769,0.2231,0.341,0.4436,0.5897,0.6308,0.5]
df['x1'] = [np.nan,0.2654,0.2615,0.5846,0.4615,0.8308,0.4962,0.3269,0.5346,0.6731]

imputer = IterativeImputer(max_iter=10, random_state=42)
imputer.fit(df)
imputed_df = imputer.transform(df)
imputed_df
Run Code Online (Sandbox Code Playgroud)

问题是当numpy数组返回时,列名和其他元数据被删除。我当然可以从原始数据框中手动提取该元数据,然后重新应用它,但这似乎有点麻烦。Pandas有自己的输入法,Dataframe.fillna()但算法并不像scikit那些算法那么复杂。

那么有没有办法将输入器拟合到数据帧并从结果返回数据帧。

python numpy dataframe pandas scikit-learn

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

使用 Tensorflow 2.0 设置 AWS EC2 实例——AMI 还是自己构建?

我需要使用 Tensorflow 2.0 设置一个 AWS EC2 GPU 实例。我看到的所有文档都表明,当前的 AWS AMI 映像仅支持 Tensorflow 1.14 或 1.15,而不支持 Tensorflow 2.0。因此,我想知道在 AWS 实例上获得 Tensorflow-gpu 2.0 的最佳方法是什么。

我可以创建一个 EC2 GPU 实例,安装 Nvidia 驱动程序,然后使用nvidia-docker和安装一个 docker 实例,Tensorflow 2.0.或者使用 Tensorflow 1.14 安装 AWS AMI 映像然后升级到 Tensorflow 2.0 是否更容易?目前尚不清楚哪种方法更有意义。

欢迎大家提出意见。

python amazon-ec2 amazon-web-services tensorflow

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

pytorch 什么时候需要在模型或张量上使用`.to(device)`?

我是 Pytorch 的新手,但它看起来很不错。我唯一的问题是什么时候使用tensor.to(device)or Module.nn.to(device)

我正在阅读有关此主题的文档,它表明此方法会将张量或模型移动到指定的设备。但是我不清楚这需要哪些操作,如果我不使用.to()正确的时间会出现什么样的错误?

例如,如果我只是创建一个张量,我想象张量存储在 CPU 可访问的内存中,直到我将张量移动到 GPU。一旦张量在 GPU 上,GPU 就会对该张量执行任何数学运算。

但是,我是否必须担心不小心将数据张量传输到 GPU 而没有将模型传输到 GPU?这只会给我带来直接的错误,还是会在幕后进行大量昂贵的数据传输。这个例子对我来说很容易测试,但我只是想知道它可能不那么明显的其他情况。

任何指导都会有所帮助。

python gpu pytorch tensor

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

使用 to_owned() 是否是更新结构体的惯用方式?

我正在尝试使用链式方法更新 Rust 结构。我找到了一种方法来做到这一点,但我不确定我下面的代码是否是惯用的 Rust,而不仅仅是一种解决方法。

特别是,我.to_owned()在链式方法的末尾使用了返回借用的结构体。代码编译并运行得很好。这是最小的例子。

//struct.rs
#[derive(Debug, Default, Clone, PartialEq)]
pub struct ModelDataCapture {
    run: i32,
    year: i32,
}
impl ModelDataCapture {
    pub fn new() -> Self {
        ModelDataCapture::default()
    }
    pub fn set_run(&mut self, run: i32) -> &mut ModelDataCapture {
        self.run = run;
        self
    }
    pub fn set_year(&mut self, year: i32) -> &mut ModelDataCapture {
        self.year = year;
        self
    }
}

//main.rs
let data_capture = ModelDataCapture::new()
    .set_run(0)
    .set_year(1)
    .to_owned(); // <<< QUESTION

println!("here is the data capture {:?}", …
Run Code Online (Sandbox Code Playgroud)

struct method-chaining rust borrow-checker

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