我有数说37。37 位于 之间2**5 and 2**6。我想编写一个函数,它将数字作为参数并返回其下界的幂。
def foo(x=37)
{
result =//Here calculation
return result
}
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,回报应该是5因为它的下限2**5 and 5是它的力量。
注意:一定要关心python 2.5
提前致谢。
我想计算方差= 36的正态分布均值μ的最大似然估计。
但是以下过程显示错误:
set.seed(36)
x <- rnorm(50,mean=20,sd=6)
loglikelikelihood<- function(mu,x){
L = (-50)*log(sqrt(2*pi)*6)-((1/72)*(sum(x^2)-2*mu*sum(x)+50*mu^2))
}
optimize(f=loglik,X=x,interval=c(0,100),maximum=T)
Run Code Online (Sandbox Code Playgroud) 我正在尝试适合形式的功能:
其中A和B是固定常数.在scipy中,我通常(我认为合理规范)解决此类问题的方法如下:
def func(t, coefs):
phase = np.poly1d(coefs)(t)
return A * np.cos(phase) + B
def fit(time, data, guess_coefs):
residuals = lambda p: func(time, p) - data
fit_coefs = scipy.optimize.leastsq(residuals, guess_coefs)
return fit_coefs
Run Code Online (Sandbox Code Playgroud)
这项工作正常,但我想提供一个分析雅可比行列式来改善收敛性.从而:
def jacobian(t, coefs):
phase = np.poly1d(coefs, t)
the_jacobian = []
for i in np.arange(len(coefs)):
the_jac.append(-A*np.sin(phase)*(t**i))
return the_jac
def fit(time, data, guess_coefs):
residuals = lambda p: func(time, p) - data
jac = lambda p: jacobian(time, p)
fit_coefs = scipy.optimize.leastsq(residuals, guess_coefs,
Dfun=jac, col_deriv=True)
Run Code Online (Sandbox Code Playgroud)
即使订单为2或更低,这也不会起作用.使用optimize.check_gradient()快速检查也不会产生积极的结果.
我几乎可以肯定Jacobian和代码是正确的(虽然请纠正我)并且问题更为基础:雅各比派中的t**i术语会导致溢出错误.这在函数本身中不是问题,因为这里单项式项乘以它们非常小的系数.
我的问题是:
代码来自:https : //github.com/torch/nn/blob/master/lib/THNN/generic/LogSoftMax.c
我没有看到这段代码如何计算模块 LogSoftMax 输入的梯度。我感到困惑的是两个 for 循环在做什么。
for (t = 0; t < nframe; t++)
{
sum = 0;
gradInput_data = gradInput_data0 + dim*t;
output_data = output_data0 + dim*t;
gradOutput_data = gradOutput_data0 + dim*t;
for (d = 0; d < dim; d++)
sum += gradOutput_data[d];
for (d = 0; d < dim; d++)
gradInput_data[d] = gradOutput_data[d] - exp(output_data[d])*sum;
}
}
Run Code Online (Sandbox Code Playgroud) 对于在第一个转换层之后的转换层,Tensorflow梯度始终为零.我已经尝试了不同的方法来检查,但渐变总是为零!这是可以运行以检查的小型可重现代码.
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
import tensorflow as tf
import numpy as np
import math
import os
import random
import tflearn
batch_size = 100
start = 0
end = batch_size
learning_rate = 0.000001
num_classes = 4
time_steps = 4
embedding = 2
step = 1
_units = 500
num_of_filters = 1000
train_set_x = [[[1,2],[3,4],[5,6],[7,8]],[[1,2],[3,4],[5,6],[7,8]]]
train_set_y = [0,1]
X = tf.placeholder(tf.float32, [None,time_steps,embedding])
Y = tf.placeholder(tf.int32, [None])
x = tf.expand_dims(X,3)
filter_shape = [1, embedding, …Run Code Online (Sandbox Code Playgroud) python mathematical-optimization gradient-descent tensorflow
使用 Pyomo 5.1.1(Windows 7 上的 CPython 2.7.10),我尝试执行最简单的 Pyomo 示例,具体模型见https://software.sandia.gov/downloads/pub/pyomo/PyomoOnlineDocs。 html#_a_simple_concrete_pyomo_model
from __future__ import division
from pyomo.environ import *
model = ConcreteModel()
model.x = Var([1,2], domain=NonNegativeReals)
model.OBJ = Objective(expr = 2*model.x[1] + 3*model.x[2])
model.Constraint1 = Constraint(expr = 3*model.x[1] + 4*model.x[2] >= 1)
Run Code Online (Sandbox Code Playgroud)
我执行:
> pyomo solve Pyomo_concrete_v1.py --solver=glpk
Run Code Online (Sandbox Code Playgroud)
根据我自己的计算,结果应该是:
x[1]=0
x[2]=0.25
OBJ=0.75
Run Code Online (Sandbox Code Playgroud)
但是,我发现以下“results.yml”:
# ----------------------------------------------------------
# Problem Information
# ----------------------------------------------------------
Problem:
- Name: unknown
Lower bound: 0.666666666667
Upper bound: 0.666666666667
Number of objectives: 1
Number of constraints: 2
Number of …Run Code Online (Sandbox Code Playgroud) python mathematical-optimization linear-programming glpk pyomo
我想知道我是否可以在PuLP 中创建一个多目标函数,通过这样做我可以在PuLP 中创建一个 Min Z = max(a,b,c),但是在使用此代码时
ilp_prob = pulp.LpProblem("Miniimize Problem", pulp.LpMinimize)
x = []
if m >3:
return 1,1
for i in range(m):
temp = []
for j in range(len(jobs)):
temp += [pulp.LpVariable("x_%s_%s" %((i+1),(j+1)),0,1, cat = 'Binary')]
x+= [temp]
ilp_prob += max([pulp.lpSum([jobs[j]*x[i][j] for j in range(len(jobs))] for i in range(m))])
for i in range(len(jobs)):
ilp_prob += pulp.lpSum([x[j][i] for j in range(m)])==1
ilp_prob.solve()
Run Code Online (Sandbox Code Playgroud)
它只返回 x[0] 中的所有 1,以及 x[0] 中的所有 0。
为了解决我的库存问题,我需要一个三维决策变量x_{ij}^t
我是 CPLEX Python API docplex 的新手,到目前为止我发现的是
m = Model(name='inventory_problem')
x = m.integer_var_matrix(keys1=all_origins, keys2=all_destinations)
Run Code Online (Sandbox Code Playgroud)
这将涵盖索引中的 i 和 j 但如何包含第三个维度?
我想这不是很困难,但我就是找不到它......非常感谢!
python mathematical-optimization cplex multidimensional-array docplex
我正在使用MATLAB来计算图像的幅度和相位.我使用以下公式来获得相位角:
Phase_Angle = tan^-1(Y_Magnitude/X_Magnitude)
Run Code Online (Sandbox Code Playgroud)
因此,如果X_Magnitude矩阵包含零值将导致NaN 没有人会喜欢那样..
scipy.optimize 模块具有 scipy.optimize.minimize,它允许找到最小化目标函数的值。但是没有 scipy.optimize.maximize。为什么?如何使用 SciPy 解决最大化问题?