小编Jin*_*Jia的帖子

验证数据可以是 tensorflow.keras 2.0 中的生成器吗?

tensorflow.keras 的官方文档中,

验证数据可以是: Numpy 数组的元组 (x_val, y_val) 或 Numpy 数组数据集的张量元组 (x_val, y_val, val_sample_weights) 对于前两种情况,必须提供 batch_size。对于最后一种情况,可以提供validation_steps。

它没有提到生成器是否可以充当验证数据。所以我想知道validation_data 是否可以是一个数据生成器?像下面的代码

net.fit_generator(train_it.generator(), epoch_iterations * batch_size, nb_epoch=nb_epoch, verbose=1,
                  validation_data=val_it.generator(), nb_val_samples=3,
                  callbacks=[checker, tb, stopper, saver])
Run Code Online (Sandbox Code Playgroud)

更新:在keras的官方文档中,内容相同,只是增加了一句:

  • 数据集或数据集迭代器

考虑到

dataset 对于前两种情况,必须提供batch_size。对于最后一种情况,可以提供validation_steps。

我认为应该有3种情况。Keras 的文档是正确的。所以我会在 tensorflow.keras 中发布一个问题来更新文档。

python artificial-intelligence keras tensorflow

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

为什么客户的python包无法导入?

我创建了自己的 python 包jjnsegutils,并将其上传到 Pypi 网站。但是我成功安装后pip install jjnsegutils,仍然无法导入。错误显示:ModuleNotFoundError: No module named 'jjnsegutils'

\n
\n

整个过程的详细信息如下。

\n

封装结构和细节

\n

我的包的结构是:

\n
jjnsequtils\n\xe2\x94\x9c\xe2\x94\x80 __init__.py\n\xe2\x94\x9c\xe2\x94\x80 myutil\n    \xe2\x94\x9c\xe2\x94\x80 __init__.py\n    \xe2\x94\x9c\xe2\x94\x80 myutil.py\n\xe2\x94\x9c\xe2\x94\x80 LICENSE\n\xe2\x94\x9c\xe2\x94\x80 README.md\n\xe2\x94\x9c\xe2\x94\x80 setup.py\n\n
Run Code Online (Sandbox Code Playgroud)\n

两个__init__.py文件都是空的。

\n

在我的setup.py

\n
import setuptools\n\nwith open("README.md", "r") as fh:\n    long_description = fh.read()\n\nsetuptools.setup(\n    name="jjnsegutils", # Replace with your own username\n    version="0.0.10",\n    author="Jingnan",\n    author_email="jiajingnan2222@gmail.com",\n    description="A package of common utilities for Medical images segmentation and evaluation.",\n    long_description=long_description,\n    long_description_content_type="text/markdown",\n    url="https://github.com/Ordgod/jjnsegutils",\n    packages=setuptools.find_packages(),\n    classifiers=[\n        "Programming …
Run Code Online (Sandbox Code Playgroud)

python linux pip python-import python-wheel

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

批量大小=1时的批量标准化

当我使用批量标准化但设置时会发生什么batch_size = 1

因为我使用 3D 医学图像作为训练数据集,由于 GPU 限制,batch size 只能设置为 1。通常,我知道,当 时batch_size = 1,方差将为 0。并且(x-mean)/variance会因除以0 而导致错误。

但是为什么我设置的时候没有出现错误batch_size = 1呢?为什么我的网络训练得和我预期的一样好?有人能解释一下吗?

有人认为:

ZeroDivisionError由于两种情况,可能不会遇到 。首先,异常在trycatch 块中被捕获。其次,1e-19在方差项中添加一个小的有理数 ( ),使其永远不会为零。

也有人不同意。他们说:

您应该计算批次图像中所有像素的均值和标准差。(所以即使batch_size = 1,batch中仍然有很多像素。所以batch_size=1仍然可以工作的原因不是因为1e-19

我查过Pytorch的源码,从代码上我觉得后一种是对的。

有人有不同意见吗???

python deep-learning keras tensorflow batch-normalization

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