- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我还没有看到与此相关的问题,尽管我做了一些相反的努力,但它还是弹出了,所以我希望有人能帮助我了解发生了什么。
我是 Python 的 Gekko 包的新手,我正在尝试运行非线性求解器来解决正在发生的事情。我收到一条奇怪的错误消息( FileNotFoundError: [Errno 2] No such file or directory: '/var/folders/03/vyh22j3j45j2rqjmnygfw2l80000gn/T/tmpatrk8y36gk_model0/options.json'
),似乎是编程/语法而不是数学。这是一个更大的函数/数据/输入中的一个函数,所以我很难提供足够的帮助你复制它——但是——
y(即来自 self.get_days_energy(date = date) 的结果)是一个能量值向量,就像来自 self.get_exogenous_inputs_of_day(date) 的外生输入一样。 Z 变量是潜在状态变量,A 和 B 分别是潜在状态和外生变量的转移矩阵。此函数的目标是更新上述三个变量。
这里的功能:
def daily_weight_fit(self, date):
"""
Update function to the weights of the dynamic system, this will be called
once a day after the data has arrived.
"""
m = GEKKO(remote = False)
A = m.Array(
m.Var,
(self.state_weights.shape),
value = 1,
lb = -10,
ub = 10,
)
B = m.Array(
m.Var,
(self.input_weights.shape),
value = 1,
lb = -100,
ub = 100,
)
dates = pd.date_range(start=self.starting_date, end=date)
date_list = dates.tolist()
hours = list(range(24))
y = [[self.get_days_energy(date = date)] for date in dates]
flat_y = np.reshape(y, -1)
timesteps = len(flat_y)
u = [self.get_exogenous_inputs_of_day(date) for date in dates for hour in hours]
z = m.Array(m.Var, (timesteps, 4), lb = -1, ub = 1)
C = np.array([0, 0, 1, 0])
m.Obj(
m.sqrt(
m.sum([(flat_y[i] - z[i][3])**2 for i in range(len(flat_y))])
)
)
for i in range(timesteps - 2):
state_contribution = np.dot(A, z[i])
ex_contribution = np.dot(B, u[i])
for j in range(4):
m.Equation(z[i + 1][j] == state_contribution[j] + ex_contribution[j])
m.options.solver = 1
m.solve()
return A, B, z
----------------------------------------------------------------
APMonitor, Version 0.9.2
APMonitor Optimization Suite
----------------------------------------------------------------
--------- APM Model Size ------------
Each time step contains
Objects : 1
Constants : 0
Variables : 1849
Intermediates: 0
Connections : 361
Equations : 1793
Residuals : 1793
Number of state variables: 1849
Number of total equations: - 1793
Number of slack variables: - 0
---------------------------------------
Degrees of freedom : 56
----------------------------------------------
Steady State Optimization with APOPT Solver
----------------------------------------------
Iter Objective Convergence
0 4.12076E+08 8.12928E+01
1 5.38520E+02 1.00000E+00
2 5.38512E+02 3.75145E-12
3 5.38450E+02 2.00000E+00
4 5.38506E+02 1.80710E-01
NEGATIVE NDF: -1
5 1.10270E+07 3.34638E-01
6 4.89845E+06 1.93472E+00
7 4.73333E+05 3.99952E+00
8 3.76178E+05 2.00000E+00
9 1.69753E+05 1.31302E+00
Iter Objective Convergence
10 1.90770E+07 5.86504E-01
11 3.03623E+16 3.34638E-01
12 9.38385E+11 3.34304E-01
13 1.14353E+12 1.09011E-02
14 8.91928E+12 7.65181E-03
Error:
Program received signal SIGSEGV: Segmentation fault - invalid memory reference.
Backtrace for this error:
#0 0x108c7718d
#1 0x108c7661b
#2 0x7fff661ccf59
#3 0x108a92b6b
apm_mac(33870,0x7fff9e9c1380) malloc: *** error for object 0x7fb371862e00: incorrect checksum for freed object - object was probably modified after being freed.
*** set a breakpoint in malloc_error_break to debug
Program received signal SIGABRT: Process abort signal.
Backtrace for this error:
#0 0x108c7718d
#1 0x108c7661b
#2 0x7fff661ccf59
Error: 'results.json' not found. Check above for additional error details
Traceback (most recent call last):
.... (my own irrelevant function trace).....
m.solve()
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/gekko/gekko.py", line 2145, in solve
self.load_JSON()
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/gekko/gk_post_solve.py", line 13, in load_JSON
f = open(os.path.join(self._path,'options.json'))
FileNotFoundError: [Errno 2] No such file or directory: '/var/folders/03/vyh22j3j45j2rqjmnygfw2l80000gn/T/tmp42metzl9gk_model0/options.json'
最佳答案
您发现了 APOPT 求解器的一个新错误。迭代摘要显示问题正在发散,因此某些变量可能会趋向于无穷大,超出机器精度。
m.options.SOLVER=2
或 IPOPT 与 m.options.SOLVER=3
. m.path
以便开发人员可以修复错误。
options.json
或
results.json
文件由底层 C++/Fortran 可执行文件在本地写入
m=GEKKO(remote=False)
或通过网络服务
m=GEKKO(remote=True)
.在所有情况下,可执行文件产生的结果为
json
文件位于本地运行目录
m.path
或者在远程服务器上。当可执行文件由于错误而崩溃时,
json
不会生成文件,这会导致您观察到的错误。您还可以看到求解器在迭代 14 处停止。使用
remote=False
,可执行文件从 Gekko bin 目录本地运行(Linux 为
apm
,MacOS 为
apm_mac
,Windows 为
apm.exe
)但在运行目录
m.path
中生成文件.
关于Python gekko 找不到 "options.json"文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60649331/
我正在处理一组标记为 160 个组的 173k 点。我想通过合并最接近的(到 9 或 10 个组)来减少组/集群的数量。我搜索过 sklearn 或类似的库,但没有成功。 我猜它只是通过 knn 聚类
我有一个扁平数字列表,这些数字逻辑上以 3 为一组,其中每个三元组是 (number, __ignored, flag[0 or 1]),例如: [7,56,1, 8,0,0, 2,0,0, 6,1,
我正在使用 pipenv 来管理我的包。我想编写一个 python 脚本来调用另一个使用不同虚拟环境(VE)的 python 脚本。 如何运行使用 VE1 的 python 脚本 1 并调用另一个 p
假设我有一个文件 script.py 位于 path = "foo/bar/script.py"。我正在寻找一种在 Python 中通过函数 execute_script() 从我的主要 Python
这听起来像是谜语或笑话,但实际上我还没有找到这个问题的答案。 问题到底是什么? 我想运行 2 个脚本。在第一个脚本中,我调用另一个脚本,但我希望它们继续并行,而不是在两个单独的线程中。主要是我不希望第
我有一个带有 python 2.5.5 的软件。我想发送一个命令,该命令将在 python 2.7.5 中启动一个脚本,然后继续执行该脚本。 我试过用 #!python2.7.5 和http://re
我在 python 命令行(使用 python 2.7)中,并尝试运行 Python 脚本。我的操作系统是 Windows 7。我已将我的目录设置为包含我所有脚本的文件夹,使用: os.chdir("
剧透:部分解决(见最后)。 以下是使用 Python 嵌入的代码示例: #include int main(int argc, char** argv) { Py_SetPythonHome
假设我有以下列表,对应于及时的股票价格: prices = [1, 3, 7, 10, 9, 8, 5, 3, 6, 8, 12, 9, 6, 10, 13, 8, 4, 11] 我想确定以下总体上最
所以我试图在选择某个单选按钮时更改此框架的背景。 我的框架位于一个类中,并且单选按钮的功能位于该类之外。 (这样我就可以在所有其他框架上调用它们。) 问题是每当我选择单选按钮时都会出现以下错误: co
我正在尝试将字符串与 python 中的正则表达式进行比较,如下所示, #!/usr/bin/env python3 import re str1 = "Expecting property name
考虑以下原型(prototype) Boost.Python 模块,该模块从单独的 C++ 头文件中引入类“D”。 /* file: a/b.cpp */ BOOST_PYTHON_MODULE(c)
如何编写一个程序来“识别函数调用的行号?” python 检查模块提供了定位行号的选项,但是, def di(): return inspect.currentframe().f_back.f_l
我已经使用 macports 安装了 Python 2.7,并且由于我的 $PATH 变量,这就是我输入 $ python 时得到的变量。然而,virtualenv 默认使用 Python 2.6,除
我只想问如何加快 python 上的 re.search 速度。 我有一个很长的字符串行,长度为 176861(即带有一些符号的字母数字字符),我使用此函数测试了该行以进行研究: def getExe
list1= [u'%app%%General%%Council%', u'%people%', u'%people%%Regional%%Council%%Mandate%', u'%ppp%%Ge
这个问题在这里已经有了答案: Is it Pythonic to use list comprehensions for just side effects? (7 个答案) 关闭 4 个月前。 告
我想用 Python 将两个列表组合成一个列表,方法如下: a = [1,1,1,2,2,2,3,3,3,3] b= ["Sun", "is", "bright", "June","and" ,"Ju
我正在运行带有最新 Boost 发行版 (1.55.0) 的 Mac OS X 10.8.4 (Darwin 12.4.0)。我正在按照说明 here构建包含在我的发行版中的教程 Boost-Pyth
学习 Python,我正在尝试制作一个没有任何第 3 方库的网络抓取工具,这样过程对我来说并没有简化,而且我知道我在做什么。我浏览了一些在线资源,但所有这些都让我对某些事情感到困惑。 html 看起来
我是一名优秀的程序员,十分优秀!