", I face with an error displaying "AttributeError: 'tuple' object has no attribute 'shape'". How can I get rid of that error ? Is there any size mismatch ?
# Using 3D array with LSTM
from
keras
import
Model
from
keras.layers
import
Input
, Dense, Bidirectional
from
keras.layers.recurrent
import
LSTM
import
numpy as np
# define model for simple BI-LSTM + DNN based binary classifier
def
define_model():
input1
=
Input
(shape
=
(
2
,
2
))
#use row and column size as input size
lstm1
=
Bidirectional(LSTM(units
=
32
))(input1)
dnn_hidden_layer1
=
Dense(
3
, activation
=
'relu'
)(lstm1)
dnn_output
=
Dense(
1
, activation
=
'sigmoid'
)(dnn_hidden_layer1)
model
=
Model(inputs
=
[input1],outputs
=
[dnn_output])
# compile the model
model.
compile
(loss
=
'binary_crossentropy'
, optimizer
=
'adam'
, metrics
=
[
'accuracy'
])
model.summary()
return
model
# Take a dummy 3D numpy array to train the model
data
=
np.array([[[
0.1
,
0.15
], [
0.2
,
0.25
]],
[[
0.3
,
0.35
], [
0.4
,
0.45
]],
[[
0.5
,
0.55
], [
0.6
,
0.65
]],
[[
0.7
,
0.75
], [
0.8
,
0.85
]],
[[
0.9
,
0.95
], [
1.0
,
1.5
]]])
Y
=
[
1
,
1
,
1
,
0
,
0
]
#define binary class level for this model
print
(
"data = "
, data)
# NO NEED TO RESHAPE THE DATA as it is already in 3D format
# Call the model
model
=
define_model()
# Fit the model
model.fit([data],[np.array(Y)],epochs
=
4
,batch_size
=
2
,verbose
=
1
)
# Take a test data to test the working of the model
test_data
=
np.array([[[
0.2
,
0.33
],[
0.2
,
0.33
]]])
# predict the sigmoid output [0,1] for the 'test_data'
pred
=
model.predict(test_data)
print
(
"predicted sigmoid output => "
,pred)