TypeError with 3d array
See original GitHub issueHi @maxpumperla, thanks for all your help with this. I’m having an issue with using a 3d array for my X values. My training X values are in an array as float64 with the dimensions (926, 100, 1). These values are feed into a LSTM model. The 3d array is to fulfill the Keras format of n=926, timesteps=100, features=1. My model works when I do not use it with Hyperas. When I try to run it with Hyperas, I get this error:
File "/anaconda/lib/python3.6/inspect.py", line 636, in getfile
'function, traceback, frame, or code object'.format(object))
TypeError: **(outputs entire array)**
is not a module, class, method, function, traceback, frame, or code object
Below is my model for reference:
def model(train_x,train_y,test_x,test_y):
model = Sequential()
model.add(LSTM(
input_dim=1,
output_dim=50,
return_sequences=True))
model.add(Dropout({{uniform(0,.5)}}))
model.add(LSTM(
100,
return_sequences=False))
model.add(Dropout({{uniform(0,.5)}}))
model.add(Dense(
output_dim=1))
model.add(Activation("sigmoid"))
start = time.time()
model.compile(loss="binary_crossentropy", optimizer="rmsprop",metrics=['accuracy'],class_mode="binary")
print("> Compilation Time : ", time.time() - start)
# Fitting model
model.fit(
train_x,
train_y,
batch_size={{choice([16,32,64,128,256,512])}},
nb_epoch=5,
validation_split=.05,
show_accuracy=True)
Score, Acc = model.evaluate(test_x,test_y)
print('Accuracy', Acc)
return {'loss':-Acc,'status':STATUS_OK,'model':model}
if __name__ == '__main__':
best_run, best_model = optim.minimize(model=model,
data=data(),
algo=tpe.suggest,
max_evals=5,
trials=Trials())
train_x, train_y, test_x, test_y = data()
print("Evalutation of best performing model:")
print(best_model.evaluate(test_x,test_y))
print('Best performing hyper-paramaters:')
print(best_run)
Any ideas? Thanks!
Issue Analytics
- State:
- Created 6 years ago
- Comments:10 (3 by maintainers)
Top Results From Across the Web
html - javascript typeerror while reading 3d array - Stack Overflow
i have the following 3d array. i want to parse the 1st element of each array element, which should return all the dates....
Read more >NumPy quickstart — NumPy v1.25.dev0 Manual
NumPy's main object is the homogeneous multidimensional array. ... TypeError: array() takes from 1 to 2 positional arguments but 4 were given >>>...
Read more >NumPy arange(): How to Use np.arange() - Real Python
NumPy arange() is one of the array creation routines based on numerical ranges. ... to explicitly provide stop without start , then you'll...
Read more >Chapter 4. NumPy Basics: Arrays and Vectorized Computation
ndarray , a fast and space-efficient multidimensional array providing ... (like a string that cannot be converted to float64 ), a TypeError will...
Read more >TypeError only size-1 arrays can be converted to Python scalars
Only Arrays of Size 1 can be converted to Python. Scalars Error is a common error that appears in the terminal as a...
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
Hello all - I’ve figured out the issue here; at least from my standpoint…
I thought the wrapper was a bit more flexible in terms of its parameter inputs when you call optim.minimize. It’s not flexible. I believe the majority of you are likely either trying to pass in your X_train, y_train, X_test, y_test, and/or the model directly. Simply put, you can’t use this wrapper in this fashion. You must pass in a “module, class, method, function, traceback, frame, or code object”, no exceptions.
So, when Max suggests using the following code:
You literally need to pass in the parameters as such. You must make a data() function that returns the four data series and you must make a self-contained function that creates and returns the model i.e. create_model().
I suppose this is written explicitly in the instructions/setup and the error thrown also suggests this is the case as well… I’m a little ashamed that I didn’t read it thoroughly enough. This feels like a Zoolander moment (“the files are in the computer”). lol!
Thank you Max and team for putting hyperas together. It’s much less frustrating once you read the instructions… 😉
Hey, guys! I’m having the same problem… I’m running my code on a Jupyter Notebook. Is that a problem? Here’s the error:
TypeError Traceback (most recent call last) <ipython-input-4-27652ebc1ee2> in <module> 9 max_evals=5, 10 trials=Trials(), —> 11 notebook_name=‘teste’) 12 x_train, x_train, x_val, y_val = data() 13 print(“Evalutation of best performing model:”)
~\AppData\Local\Continuum\anaconda3\lib\site-packages\hyperas\optim.py in minimize(model, data, algo, max_evals, trials, functions, rseed, notebook_name, verbose, eval_space, return_space, keep_temp) 67 notebook_name=notebook_name, 68 verbose=verbose, —> 69 keep_temp=keep_temp) 70 71 best_model = None
~\AppData\Local\Continuum\anaconda3\lib\site-packages\hyperas\optim.py in base_minimizer(model, data, functions, algo, max_evals, trials, rseed, full_model_string, notebook_name, verbose, stack, keep_temp) 96 model_str = full_model_string 97 else: —> 98 model_str = get_hyperopt_model_string(model, data, functions, notebook_name, verbose, stack) 99 temp_file = ‘./temp_model.py’ 100 write_temp_files(model_str, temp_file)
~\AppData\Local\Continuum\anaconda3\lib\site-packages\hyperas\optim.py in get_hyperopt_model_string(model, data, functions, notebook_name, verbose, stack) 196 197 functions_string = retrieve_function_string(functions, verbose) –> 198 data_string = retrieve_data_string(data, verbose) 199 model = hyperopt_keras_model(model_string, parts, aug_parts, verbose) 200
~\AppData\Local\Continuum\anaconda3\lib\site-packages\hyperas\optim.py in retrieve_data_string(data, verbose) 217 218 def retrieve_data_string(data, verbose=True): –> 219 data_string = inspect.getsource(data) 220 first_line = data_string.split(“\n”)[0] 221 indent_length = len(determine_indent(data_string))
~\AppData\Local\Continuum\anaconda3\lib\inspect.py in getsource(object) 971 or code object. The source code is returned as a single string. An 972 OSError is raised if the source code cannot be retrieved.“”" –> 973 lines, lnum = getsourcelines(object) 974 return ‘’.join(lines) 975
~\AppData\Local\Continuum\anaconda3\lib\inspect.py in getsourcelines(object) 953 raised if the source code cannot be retrieved.“”" 954 object = unwrap(object) –> 955 lines, lnum = findsource(object) 956 957 if istraceback(object):
~\AppData\Local\Continuum\anaconda3\lib\inspect.py in findsource(object) 766 is raised if the source code cannot be retrieved.“”" 767 –> 768 file = getsourcefile(object) 769 if file: 770 # Invalidate cache if needed.
~\AppData\Local\Continuum\anaconda3\lib\inspect.py in getsourcefile(object) 682 Return None if no way can be identified to get the source. 683 “”" –> 684 filename = getfile(object) 685 all_bytecode_suffixes = importlib.machinery.DEBUG_BYTECODE_SUFFIXES[:] 686 all_bytecode_suffixes += importlib.machinery.OPTIMIZED_BYTECODE_SUFFIXES[:]
~\AppData\Local\Continuum\anaconda3\lib\inspect.py in getfile(object) 664 raise TypeError('module, class, method, function, traceback, frame, or ’ 665 ‘code object was expected, got {}’.format( –> 666 type(object).name)) 667 668 def getmodulename(path):
TypeError: module, class, method, function, traceback, frame, or code object was expected, got tuple
And my final code is:
from hyperopt import Trials, STATUS_OK, tpe from hyperas import optim from hyperas.distributions import choice, uniform
if name == ‘main’: best_run, best_model = optim.minimize(model=model, data=data(), algo=tpe.suggest, max_evals=5, trials=Trials(), notebook_name=‘teste’) x_train, x_train, x_val, y_val = data() print(“Evalutation of best performing model:”) print(best_model.evaluate(X_test, Y_test)) print(“Best performing model chosen hyper-parameters:”) print(best_run)