小编Ari*_*ael的帖子

张量流评估和早期停止给出无穷大溢出错误

我的模型如下面的代码所示,但是当尝试评估它或对其使用早期停止时,它会给出以下错误:

    numdigits = int(np.log10(self.target)) + 1
OverflowError: cannot convert float infinity to integer
Run Code Online (Sandbox Code Playgroud)

我必须声明,不使用.EarlyStoppingmodel.evaluate一切正常。

我知道这np.log10(0)可能-inf是一个潜在的原因,但为什么0首先会出现这种情况,如何预防呢?如何解决这个问题?

笔记

这是我使用的代码:

import tensorflow as tf
from tensorflow import keras

TRAIN_PERCENT = 0.9

model = keras.Sequential([
    keras.layers.Dense(128, input_shape=(100,), activation='relu'),
    keras.layers.Dense(128, activation='relu'),
    keras.layers.Dense(100)
])

earlystop_callback = keras.callbacks.EarlyStopping(min_delta=0.0001, patience=1
                                                   , monitor='accuracy'
                                                   )

optimizer = keras.optimizers.Adam(lr=0.01)
model.compile(optimizer=optimizer, loss="mse", metrics=['accuracy'])

X_set, Y_set = some_get_data_function()
sep = int(len(X_set)/TRAIN_PERCENT)
X_train, Y_train = X_set[:sep], Y_set[:sep]
X_test, Y_test = X_set[sep:], Y_set[sep:]

model.fit(X_train, Y_train, …
Run Code Online (Sandbox Code Playgroud)

python numpy overflow keras tensorflow

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

C/CPP - 将浮点运算转换为整数运算

我有以下 c++ 函数(实现Bresenham's line algorithm),在书中看到

从像素到可编程图形硬件的计算机图形 作者 Alexey Boreskov, Evgeniy Shikin

其中一个函数使用浮点数,由于其效率低下,本书介绍了另一个仅使用整数算术的函数。

我很难理解为什么这两个是等价的,为什么我们<<在这里使用左移,而不是a<<1简单地乘以a2?

:我们假设点A:(xa,ya)B:(xb,yb)具有整数值。


浮动版

void drawLine(int xa, int ya, int xb, int yb, int color) {
    float k = (float)(yb-ya)/(float)(xb-xa);
    float d = 2*k - 1
    int y = ya;

    putPixel(xa, ya, color); // paint the pixel (xa,ya) in color "color"

    for (int x = xa+1; x<=xb; x++) {
        if (d > 0) {
            d += …
Run Code Online (Sandbox Code Playgroud)

c c++ algorithm floating-point integer

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

标签 统计

algorithm ×1

c ×1

c++ ×1

floating-point ×1

integer ×1

keras ×1

numpy ×1

overflow ×1

python ×1

tensorflow ×1