Aims: Each type of cardiac arrhythmia has some potential effects on electrical activities of the heart which can be diagnosed from the ECG signal. In this work, we tackle the problem of arrhythmia classification from 12-lead ECG signals including one normal sinus rhythm and eight abnormal rhythms. Methods: We developed an ensemble of deep neural networks to classify cardiac abnormalities. We employed three different models as baselines. In the first baseline, ECG signals were segmented automatically and then fed into a convolutional neural network (CNN). For classification, a bidirectional long short term memory (BiLSTM) was applied to aggregate features from the whole sequence of the segmented heartbeats which were extracted from CNN. In the second baseline, we used a CNN with an input size covering 16 seconds of ECG signal followed by a fully connected network as a classifier. Convolutional layers exploit an attention mechanism to extract long-range temporal dependencies. Finally, in the third baseline, we used a CNN with an input size covering 24 seconds to extract features, followed by a BiLSTM which combines temporal features and classifies arrhythmias. To increase the generalization, we also utilized different augmentation technics including random ECG pad and crop, adding low-frequency artifacts, and lead Dropout. Results: We trained multiple networks on 90% of the 2020 Physionet challenge by adjusting hyperparameters of each baseline including the number of layers and units in each layer. Our method achieved 0.87 and 0.69 in terms of F2 and G2 scores on the validation set, respectively. On the official test dataset, the proposed method reached an overall score of 0.69 with F2 score of 0.81 and G2 score of 0.59. Conclusion: Preliminary results show the effectiveness of our method which exploits an ensemble of CNNs and BiLSTMs along with proper data augmentation technics.