我已经意识到,我不太明白调用要么之间的差别__call__
,call
或者predict
一个Keras'模式的方法。
例如,我们有一个经过训练的 keras 模型。调用代码后:
# After training.
y_pred_1 = model(X_new)
y_pred_2 = model.call(X_new)
y_pred_3 = model.predict(X_new)
Run Code Online (Sandbox Code Playgroud)
我预计y_pred_1
, y_pred_2
, 和y_pred_3
都是一样的。但事实证明,它们并不相同。
你能向我解释一下区别吗?
我正在HPC 集群上使用Slurm作业管理器。有时会出现一些情况,当工作因时间限制而被取消时,我想优雅地完成我的计划。
据我了解,取消过程分两个阶段进行,以便软件开发人员能够优雅地完成程序:
srun: Job step aborted: Waiting up to 62 seconds for job step to finish.
slurmstepd: error: *** JOB 18522559 ON ncm0317 CANCELLED AT 2020-12-14T19:42:43 DUE TO TIME LIMIT ***
Run Code Online (Sandbox Code Playgroud)
您可以看到,我有 62 秒的时间按照我希望的方式完成工作(通过保存一些文件等)。
问题:如何做到这一点?我知道首先一些 Unix 信号被发送到我的工作,我需要正确地响应它。但是,我在 Slurm 文档中找不到有关此信号是什么的任何信息。此外,我不知道如何在Python中处理它,可能是通过异常处理。
I try to compile the fortran program which my advisor gave me.
It doesn't want to compile when I'm doing this with gfortran 4.7.2 on Mac OS X 10.8.4 and with gfortran 4.8.1 on Arch Linux x64.
我已经构建了重放错误的最小工作示例.不幸的是,无论如何它都很大,所以我把它放在了github上:https://github.com/kabanovdmitry/vode-test
我可以使用gfortran 4.6.3在Ubuntu 12.04下编译此代码.
我查看了GCC 4.7的新闻稿,发现没有什么可以给我一个线索.
你能否解释为什么gfortran不想编译这段代码?
对不起,最初忘了把错误放在这里:
main.f90:8.75:
call vode(istate, lambda_fcn, dummy_jac, lambda, x_tmp, x_end, tol, pm)
1
Error: There is no specific subroutine for the generic 'vode' at (1)
make: *** [all] Error 1
Run Code Online (Sandbox Code Playgroud) 我libffi
在 C 中使用并收到一条警告,clang-tidy
说我不太明白。
我在堆上为类型的元素数组分配内存ffi_type
:
ffi_type **arg_types = malloc(num_total_args * sizeof(ffi_type));
Run Code Online (Sandbox Code Playgroud)
并收到以下警告:
Result of 'malloc' is converted to a pointer of type 'ffi_type *', which is incompatible with sizeof operand type 'ffi_type'
Run Code Online (Sandbox Code Playgroud)
有人可以给我提示,如何修复它吗?的实际定义ffi_type
是
ffi_type **arg_types = malloc(num_total_args * sizeof(ffi_type));
Run Code Online (Sandbox Code Playgroud)
实际上我不清楚为什么它与 sizeof 运算符不兼容。
更新:@IanAbbot、@Toby Speight、@dbush 的有用评论帮助我意识到了这个(实际上很愚蠢)问题。一定是
ffi_type **arg_types = malloc(num_total_args * sizeof(ffi_type *));
Run Code Online (Sandbox Code Playgroud)
(注意最后一个星号),因为数组的元素类型为ffi_type *
。
c ×1
clang-tidy ×1
fortran ×1
gfortran ×1
keras ×1
python ×1
signals ×1
slurm ×1
tensorflow ×1