Comments (4)
After this problem was fixed in GFO I tested the same thing for Hyperactive. The same error occurred so I merged the pull request #35, added some small fixes and added the test.
Thanks to @0liu for fixing this bug.
from hyperactive.
Hello @0liu,
I am grateful for your continuing interest in Hyperactive, but we should focus on identifying the error first. I took the code from issue 15 of GFO and converted it to Hyperactive to validate your concerns about this problem:
from hyperactive import Hyperactive
search_space = dict(my_para=range(100, 200, 10))
def obj_func(para):
score = 1
my_para = para["my_para"]
for i in range(my_para):
pass
return score
hyper = Hyperactive()
hyper.add_search(obj_func, search_space, n_iter=100)
hyper.run()
This small test script runs fine. Could you provide a small but complete example to replicate the problem you are encountering?
from hyperactive.
Hi Simon,
I missed the key information in this issue's description but mentioned it in my PR: This happens when search space contains both integer and float type parameters. In this way, numpy will convert integer parameter value to float. I updated the title and first post.
By your example, if we have two parameters for the obj_func:
from hyperactive import Hyperactive
search_space = dict(my_para=range(100, 200, 10), my_para_2=[0.1, 0.2, 0.3])
def obj_func(para):
score = 1
my_para = para["my_para"]
for i in range(my_para):
pass
return score
hyper = Hyperactive()
hyper.add_search(obj_func, search_space, n_iter=100)
hyper.run()
The results are:
Results: 'obj_func'
Best score: 1
Best parameter set:
'my_para' : 130.0
'my_para_2' : 0.3
Best iteration: 0
We can see my_para
in the returned best para is 130.0 instead of 130. This is fine for human reading or manual post-processing, but in an automated process, if passing the returned results to evaluate model on validation / test data sets, there could be a problem. That's why I thought it's more like a API design concern instead of a bug.
from hyperactive.
Hello @0liu,
now I see! Thank you for the explanation. This should be classified as a bug. But I think this bug originates in GFO. I reopened your original issue in GFO, because the error occurs only when the search space contains int and float. We missed this in the original issue.
GFO also has the int to float converted parameter, if you extract the best parameter with opt.best_para
. Therefore I think those problems (one within the objective function and one with .best_para) are related and both originate in GFO.
When we fix the problem in GFO and the problem persists in Hyperactive, then we continue our efforts here. Until then we should focus on fixing the problem in GFO.
from hyperactive.
Related Issues (20)
- ValueError: assignment destination is read-only HOT 3
- Dynamic inertia in ParticleSwarmOptimizer HOT 4
- Feature: Passing extra parameters to the optimization function HOT 5
- Optimization in serial? HOT 4
- New feature: save optimizer object to continue optimization run at a later time.
- hyper.results(model) HOT 1
- New feature: Optimization Strategies HOT 1
- add ray multiprocessing support
- Change Optimization paramters at runtime
- Show speed difference between python version
- Question of Particle Swarm Optimizer HOT 6
- Progress Bar visual error when running in parallel HOT 2
- Error when creating shared memory HOT 1
- TypeError: cannot pickle '_thread.RLock' object HOT 5
- Redesign command-line output of optimization run HOT 1
- Add early stopping feature to custom optimization strategies HOT 1
- Add type hints to hyperactive-api HOT 1
- add `prune_search_space`-method to optimization strategies HOT 1
- add constrained optimization to API HOT 1
- Stop verbosity of search HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from hyperactive.