我试图为我的electron.js应用程序保存用户数据。该应用程序具有可调整值的图形,该值在重新启动应用程序时消失。演示:https : //puu.sh/Bx5Or/ffb0382d0c.gif
如何保存这些值?可以(也应该)用SQL完成吗?
情况1:
for num in [.1, .2, .3, .4, .5, .6, .7, .8, .9,]:
print(format(num, ".50f"))
Run Code Online (Sandbox Code Playgroud)
0.10000000000000000555111512312578270211815834045410
0.20000000000000001110223024625156540423631668090820
0.29999999999999998889776975374843459576368331909180
0.40000000000000002220446049250313080847263336181641
0.50000000000000000000000000000000000000000000000000
0.59999999999999997779553950749686919152736663818359
0.69999999999999995559107901499373838305473327636719
0.80000000000000004440892098500626161694526672363281
0.90000000000000002220446049250313080847263336181641
Run Code Online (Sandbox Code Playgroud)
不精确,正如预期的那样(除了.5
)。
案例2:
for num in [1., 2., 3., 4., 5., 6., 7., 8., 9.]:
print(format(num, ".50f"))
Run Code Online (Sandbox Code Playgroud)
1.00000000000000000000000000000000000000000000000000
2.00000000000000000000000000000000000000000000000000
3.00000000000000000000000000000000000000000000000000
4.00000000000000000000000000000000000000000000000000
5.00000000000000000000000000000000000000000000000000
6.00000000000000000000000000000000000000000000000000
7.00000000000000000000000000000000000000000000000000
8.00000000000000000000000000000000000000000000000000
9.00000000000000000000000000000000000000000000000000
Run Code Online (Sandbox Code Playgroud)
完美的精度 - ???
众所周知,计算中不存在完美的浮点整数:所有浮点都以二进制基数表示,其精度取决于位大小(float32
、float64
等)。那么上面的案例2是怎么回事呢?即使对于 ,零仍然存在".1000f"
,基本上意味着无限的精度。此外,0.5
也以某种方式完美地表现出来。
如果format
不能强制 Python 打印浮点数的“真”值,那么什么可以呢?
尝试的替代方案:
format(round(num, 50), ".50f")
format(numpy.float128(num), ".50f")
format(round(numpy.float128(num), 50), …
仅在切换或打开/关闭选项卡时发生,并且如果“撤消”选项卡更改则不会恢复。下面的 gif 是新安装的 VSCode,尽管我在卸载时没有删除所有缓存、首选项等。
问题是什么,如何解决?
下面的示例适用于 2.2;K.function
在 2.3 中发生了重大变化,现在Model
在 Eager 执行中构建了一个,所以我们正在通过Model(inputs=[learning_phase,...])
.
我确实有一个解决方法,但它很hackish,而且比K.function
; 如果没有人可以展示一个简单的方法,我会发布我的。
from tensorflow.keras.layers import Input, Dense
from tensorflow.keras.models import Model
from tensorflow.python.keras import backend as K
import numpy as np
ipt = Input((16,))
x = Dense(16)(ipt)
out = Dense(16)(x)
model = Model(ipt, out)
model.compile('sgd', 'mse')
outs_fn = K.function([model.input, K.symbolic_learning_phase()],
[model.layers[1].output]) # error
x = np.random.randn(32, 16)
print(outs_fn([x, True]))
Run Code Online (Sandbox Code Playgroud)
>>> ValueError: Input tensors to a Functional must come from `tf.keras.Input`.
Received: Tensor("keras_learning_phase:0", shape=(), …
Run Code Online (Sandbox Code Playgroud) 设置权重衰减(例如 l2 惩罚)的指南是什么?主要是,我如何跟踪它在整个训练过程中是否“有效”?(即,与没有 l2 惩罚相比,权重是否实际上正在衰减,以及衰减了多少)。
我在所有虚拟环境和基础环境中都存在一个错误,即使按照此处所述“完全”卸载 Anaconda然后重新安装也是如此;显然有些东西仍然存在。如何确保所有内容都被真正删除?
classdef Dog < handle\n properties\n data;\n end\n\n methods\n function self = Dog(varargin)\n disp("Dog()")\n end\n\n function out = new(~)\n out = Dog();\n out(\'bark\') = 1;\n end\n end\nend\n
Run Code Online (Sandbox Code Playgroud)\nd=Dog()
; 为什么d.new()
打印下面?
Dog()\nDog()\nDog()\n
Run Code Online (Sandbox Code Playgroud)\nsubsref
如果我超载它也会绕过它。输入d
控制台给出
ans = \n\n 1\xc3\x97114 Dog array with properties:\n\n data\n
Run Code Online (Sandbox Code Playgroud)\n并且不被复制d(\'bark\') = 1
。
如果我摆脱 ,行为就会改变varargin
,而是出现错误。还为什么呢1x114
?
我有一个具有相当大的MathJax内容的部分,它通过按钮onclick功能显示.要显示的两个选项:
onClick(){
document.getElementById('section').style.display = 'inline';
}
onClick2(){
document.getElementById('section').innerHTML = '[entire section code]'
}
Run Code Online (Sandbox Code Playgroud)
该.innerHTML
变体是否会相对提高页面加载速度?如果是这样,有没有办法在函数内"调用"整个部分代码而不是输入以下代码.innerHTML =
?
感谢帮助.
python ×4
keras ×2
tensorflow ×2
anaconda ×1
code-editor ×1
conda ×1
database ×1
electron ×1
html ×1
javascript ×1
matlab ×1
performance ×1
precision ×1
sql ×1
tf.keras ×1