Обходной путь, если все ограничения имеют строгое равенство
Я могу наложить серьезный штраф L2 rho
за отклонение от beta_given
, и, похоже, здесь поддерживается Intercept
: 116]
beta_const_df <- data.frame(names = c('Intercept','x1','x2'),
#lower_bounds = param_vals-0.1, #don't bound
#upper_bounds = param_vals+0.1,
#beta_start = param_vals, # use beta_given
beta_given = param_vals, # new
rho = 1e9 ) # new
Тогда это работает:
glm2 <- h2o.glm(x=c('x1','x2'),
y='col',
family='binomial',
lambda=0,
alpha=0,
training_frame = 'df1',
beta_constraints=beta_const_df)
glm2@model$coefficients
# Intercept x1 x2
# 27.5 -1.1 -2.7
all.equal(glm2@model$coefficients, param_vals, check.names=FALSE) # TRUE
Это работает, только если у вас есть все ограничения равенства (не различаются верхняя и нижняя границы).
В любом случае, все еще интересно, есть ли менее хакерский способ сделать это.
Изменить настройки проекта -> На вкладке «Сборка» -> Для Mac OS X Deployment Target измените его на 10,5 для XCode 3 (не на 10,6, даже если на 10,6) и посмотрите, поможет ли это.
Для XCode 4 вам нужно установить его на 10,6
P.S. Убедитесь, что вы установили это для всех целей, а не только для выпуска или отладки. (если вы этого не сделаете, один потерпит неудачу, другой не сможет)
Я смог решить эту проблему, добавив в свой Makefile следующее:
CFLAGS="$(OTHER_CFLAGS) -mmacosx-version-min=10.5"
LDFLAGS="$(OTHER_LDFLAGS) -mmacosx-version-min=10.5"
Якобы, это требуется только при сборке вне XCode. Эта проблема расстраивала меня достаточно долго, и я подумал, что было бы полезно поделиться своим опытом здесь.
Потратил несколько часов на это ...
Интересно, что для меня проблема была только в Simulator-Debug. Это не было жалоб на симулятор-релиз или отладку / релиз устройства!
в любом случае, изменение цели развертывания на 10.5 решило это для меня !!
У меня была такая же проблема в Makefile на Фортране. После компилятора добавлена следующая опция (для OSX 10.5):
-L / Developer / SDKs / MacOSX10.5.sdk / usr / lib
, например,
g77 -L / Developer / SDKs / MacOSX10.5.sdk / usr / lib
Теперь компилятор найдет нужную вам библиотеку!
Похоже, вы берете библиотеки из / usr / lib, что совершенно не подходит для iPhone SDK. Я предполагаю, что вы изменили настройки сборки, добавив / usr / lib в пути поиска библиотеки. В первую очередь в этом не должно быть необходимости, поскольку / usr / lib находится в стандартных путях поиска компилятора, но если вам нужно иметь такой измененный путь поиска, обязательно используйте $ (SDKROOT) / usr / lib
вместо этого.
Добавьте следующее в ~/.profile (для Mac OS X 10.5):
export C_INCLUDE_PATH=/Developer/SDKs/MacOSX10.5.sdk/usr/include
export LIBRARY_PATH=/Developer/SDKs/MacOSX10.5.sdk/usr/lib