Bài đăng

Đang hiển thị bài đăng từ Tháng 12, 2018

1000 queens using Java under 30s

import java.util.ArrayList; import java.util.Collections; import java.util.Random; public class NQEEN {     static final int N=1000;     static Random rand = new Random();         // i=col, get(i) = row     //h - so cap doi gay nguy hien cho nhau     //cung dong: get(i) = get(j)     //duong cheo song song duong cheo chinh: get(i)-i = get(j)-j     //song song duong cheo phu: get(i)+i = get(j)+j     static int get_h_cost(ArrayList <Integer>board){         int h = 0;         for(int i=0; i<board.size(); i++){             for(int j=i+1; j<board.size(); j++){                 if((board.get(i) - i == board.get(j) - j) || (board.get(i) + i == board.get(j) + j))                     h ++;         ...

Bàn về layers trong ANN

Hôm nay chúng ta sẽ bàn về layers: Init ANN classifier = Sequential() First hidden layer classifier.add(Dense( output_dim = 6 , init = 'uniform' , activation = 'relu' , input_dim = 11 )) Second hidden layer classifier.add(Dense( output_dim = 6 , init = 'uniform' , activation = 'signmoid' )) Output layer classifier.add(Dense( output_dim = 1 , init = 'uniform' , activation = 'softmax' )) Vấn đề 1: Có lẽ nhiều bạn đã thắc mắc làm sao để chọn được output_dim=? là hợp lý? Đây là một câu hỏi lớn haha.  Yep, It's art not science! Việc lựa chọn output_dim tốt nhất có lẽ là dựa vào kinh nghiệm việc tùy chỉnh các tham số sao cho có kết quả tốt nhất( param tuning) Có một mẹo mà mình học được từ series về ANN của Machine Learning A-Z: Nói trước là chỉ là mẹo và nó không phải ART mình nói ở trên đâu. Nó tốt hơn khi các bạn không biết nên chọn output_dim bằng bao nhiêu chứ không phải tốt nhất cho...

Ứng dụng CNN phân loại Iris dataset

Hình ảnh
Xử lý dữ liệu: import numpy as np import pandas as pd from keras.utils import to_categorical #Import dataset dataset = pd.read_csv( 'dataset.csv' ) X = dataset.iloc[: , :- 1 ].values y = dataset.iloc[: , - 1 ].values #Endcoding categorial data from sklearn.preprocessing import LabelEncoder , OneHotEncoder labelendcoder_X_lastcol = LabelEncoder() y = labelendcoder_X_lastcol.fit_transform(y) y = pd.get_dummies(y).values #split dataset to train and test from sklearn.model_selection import train_test_split X_train , X_test , y_train , y_test = train_test_split(X , y , test_size = 0.2 , random_state = 0 ) #feature scaling from sklearn.preprocessing import StandardScaler sc =StandardScaler() X_train = sc.fit_transform(X_train) X_test = sc.fit_transform(X_test) Build CNN: # Part 2-make cnn from keras.models import Sequential from keras.layers import Dense from keras.optimizers import Adam classifier = Sequential() classifier.add(Dense( 10 , input_shape =( 4 , ) , activati...

Convolutional Neural Network - CNN

Hình ảnh
Cùng xây dựng model để giải quyết bài toán phân biệt dog or cat nào! Cấu trúc dataset: Bộ dữ liệu gồm có 10000 ảnh: 8000 ảnh train( 4000 mỗi loại dog, cat) và 2000 ảnh test( 1000 mỗi loại) Phần 1: Xây dựng mô hình: Trước tiên cài đặt các thư viện cần thiết như Keras, Tensorflow , nếu các bạn đã install thì skip nhé :) # Importing the Keras libraries and packages from keras.models import Sequential from keras.layers import Convolution2D from keras.layers import MaxPooling2D from keras.layers import Flatten from keras.layers import Dense It's time to start now! * Lưu ý: vì trong bài chỉ có 2 class nên dùng binary_crossentropy , nếu nhiều class thì thay bằng  categorical_crossentropy . pool để giảm sample trong input Phần 2: Fit model     * Tương tự như chú ý ở phần 1: class_mode có thể tùy chỉnh theo từng bài toán mà có thể đặt là binary hay categorial Phần 3: Đoán thử ảnh from keras.preprocessing import image test...