Autokeras: ImageClassifier1D

Created on 15 Aug 2018  路  4Comments  路  Source: keras-team/autokeras

Feature Description


CNN structure is becoming more and more widely used in text classification. Unlike image in shape [height, weight, channel], in this case the input will be in shape [1, n, embedding size], where n is the length of the text. Currently such input will cause error in autokeras, since "1 - filter_size" will be less than zero. So I think autokeras should automatically detect such input shape and then apply 1D architecture search like 1D convolution, 1D pooling, etc.

Reason


Autokeras now is mainly for 2D input like image. It could be more flexible.

Solution


Add some codes to detect the shape of the input, and to search specific network structures optimized for 1D, 2D or 3D tensor depending on the shape of the input.

Most helpful comment

Thank you for your request.
This will be supported together with the 3D input.

All 4 comments

Thank you for your request.
This will be supported together with the 3D input.

+1 . Search for a given 1D discrete or continous sequence would be amazing.

I'm looking for an autoML that handles 1D vector data. Can ImageClassifier1D be used to classify 1D signals? If yes, what will be the embedding size in this case? I apologize if this is a newbie question. Thanks btw for your great work.

@maystroh Try to expand the dimension of the X data as follow:

import numpy as np
from autokeras.image.image_supervised import ImageClassifier1D

X = np.random.normal(size=(100000,10)) # 1M examples of 1D signal with 10 samples 
Y = np.random.randint(4, size=(100000,))

model = ImageClassifier1D(verbose=True)

X_train = np.expand_dims(X, axis=2)
model.fit(X_train, Y, time_limit=1 * 60 * 60)
Was this page helpful?
0 / 5 - 0 ratings