我目前正在使用一个tf.keras.utils.Sequence对象为 CNN 生成图像批次。我正在使用 Tensorflow 2.2 和Model.fit模型的方法。当我拟合模型时,当我设置时use_multiprocessing=True,在每个纪元中都会抛出以下警告tf.keras.model.fit(...):
WARNING:tensorflow:multiprocessing can interact badly with TensorFlow,
causing nondeterministic deadlocks. For high performance data pipelines tf.data is recommended
Run Code Online (Sandbox Code Playgroud)
该模型优化得很好,正如文档所预期的那样,而且我使用的是Sequence基于生成器的事实。但是,如果use_multiprocessing要使用已弃用的功能来代替tf.data对象,我想使用最新的输入管道。我目前使用以下tf.keras.utils.Sequence基于生成器的灵感来自这篇关于分区大型数据集的良好实践的文章:https :
//stanford.edu/~shervine/blog/keras-how-to-generate-data-on-the-fly
class DataGenerator(keras.utils.Sequence):
'Generates data for Keras'
def __init__(self, list_IDs, labels, data_dir, batch_size=32, dim=(128,128), n_channels=1,
n_classes=2, shuffle=True, **augmentation_kwargs):
'Initialization'
self.dim = dim
self.batch_size = batch_size
self.labels = labels
self.list_IDs = list_IDs
self.data_dir = data_dir
self.n_channels = n_channels
self.n_classes …Run Code Online (Sandbox Code Playgroud) 来自MATLAB的Python新手.
我正在使用幅度尺度函数的双曲正切截断.将0.5 * math.tanh(r/rE-r0) + 0.5函数应用到范围值数组时遇到问题r = np.arange(0.1,100.01,0.01).我0.0在接近零的一侧获得了函数的几个值,这在我执行对数时会导致域问题:
P1 = [ (0.5*m.tanh(x / rE + r0 ) + 0.5) for x in r] # truncation function
Run Code Online (Sandbox Code Playgroud)
我用这个解决方法:
P1 = [ -m.log10(x) if x!=0.0 else np.inf for x in P1 ]
Run Code Online (Sandbox Code Playgroud)
这对我正在做的事情已足够,但它有点像创可贴解决方案.
根据数学显性的要求:
在天文学中,幅度尺度大致如下:
mu = -2.5log(flux) + mzp # apparent magnitude
Run Code Online (Sandbox Code Playgroud)
其中mzp是每秒看到1个光子的幅度.因此,更大的通量等于更小(或更负)的视在幅度.我正在为使用多个组件功能的源制作模型.防爆.具有不同sersic索引的两个sersic函数,P1在内部组件1-P1上具有外部截断,在外部组件上具有内部截断.这样,当将截断函数添加到每个分量时,由半径定义的幅度将变得非常大,因为mu1-2.5*log(P1)在P1渐近逼近零时有多小.
TLDR:我想知道的是,是否存在一种保留浮点的方法,其精度不足以与零区分(特别是在渐近逼近零的函数的结果中).这很重要,因为在获取这些数字的对数时,结果就是域错误.
非对数P1中输出之前的最后一个数字开始读取零5.551115123125783e-17,这是一个常见的浮点算术舍入误差结果,其中所需的结果应为零.
任何投入将不胜感激.
@user:Dan没有放完我的整个脚本:
xc1,yc1 = 103.5150,102.5461;
Ee1 = 23.6781;
re1 = …Run Code Online (Sandbox Code Playgroud) python math rounding-error floating-accuracy hyperbolic-function