def mnist_cnn_model(inputShape, nb_classes): #inputShape 3dim model = Sequential() # each input is 1*28*28, output is 32*26*26 because stride is 1 and image size is 28 model.add(Convolution2D(32, 3, 3, border_mode='valid', input_shape=inputShape)) model.add(Activation('relu')) # output is 32*24*24 because stride is 1 and input is 32*26*26 model.add(Convolution2D(32, 3, 3)) model.add(Activation('relu')) # pooling will reduce the output size to 32*12*12 model.add(MaxPooling2D(pool_size=(2, 2))) # dropout not effect the output shape model.add(Dropout(0.25)) # conver the 32*12*12 output to 4608 model.add(Flatten()) model.add(Dense(128)) model.add(Activation('relu')) model.add(Dropout(0.5)) model.add(Dense(nb_classes)) model.add(Activation('softmax')) model.summary() return model
def build_model(self): model = Sequential() model.add(Dense(24, input_dim=self.state_size, activation='relu')) model.add(Dense(24, activation='relu')) model.add(Dense(self.action_size, activation='softmax')) model.summary() return model
def test_nested_sequential(in_tmpdir): (x_train, y_train), (x_test, y_test) = _get_test_data() inner = Sequential() inner.add(Dense(num_hidden, input_shape=(input_dim,))) inner.add(Activation('relu')) inner.add(Dense(num_class)) middle = Sequential() middle.add(inner) model = Sequential() model.add(middle) model.add(Activation('softmax')) model.compile(loss='categorical_crossentropy', optimizer='rmsprop') model.fit(x_train, y_train, batch_size=batch_size, epochs=epochs, verbose=1, validation_data=(x_test, y_test)) model.fit(x_train, y_train, batch_size=batch_size, epochs=epochs, verbose=2, validation_split=0.1) model.fit(x_train, y_train, batch_size=batch_size, epochs=epochs, verbose=0) model.fit(x_train, y_train, batch_size=batch_size, epochs=epochs, verbose=1, shuffle=False) model.train_on_batch(x_train[:32], y_train[:32]) loss = model.evaluate(x_test, y_test, verbose=0) model.predict(x_test, verbose=0) model.predict_classes(x_test, verbose=0) model.predict_proba(x_test, verbose=0) fname = 'test_nested_sequential_temp.h5' model.save_weights(fname, overwrite=True) inner = Sequential() inner.add(Dense(num_hidden, input_shape=(input_dim,))) inner.add(Activation('relu')) inner.add(Dense(num_class)) middle = Sequential() middle.add(inner) model = Sequential() model.add(middle) model.add(Activation('softmax')) model.compile(loss='categorical_crossentropy', optimizer='rmsprop') model.load_weights(fname) os.remove(fname) nloss = model.evaluate(x_test, y_test, verbose=0) assert(loss == nloss) # test serialization config = model.get_config() Sequential.from_config(config) model.summary() json_str = model.to_json() model_from_json(json_str) yaml_str = model.to_yaml() model_from_yaml(yaml_str)
def build_generator(self): model = Sequential() model.add(Dense(128 * 7 * 7, activation="relu", input_dim=100)) model.add(Reshape((7, 7, 128))) model.add(BatchNormalization(momentum=0.8)) model.add(UpSampling2D()) model.add(Conv2D(128, kernel_size=3, padding="same")) model.add(Activation("relu")) model.add(BatchNormalization(momentum=0.8)) model.add(UpSampling2D()) model.add(Conv2D(64, kernel_size=3, padding="same")) model.add(Activation("relu")) model.add(BatchNormalization(momentum=0.8)) model.add(Conv2D(self.channels, kernel_size=3, padding='same')) model.add(Activation("tanh")) model.summary() noise = Input(shape=(100,)) label = Input(shape=(1,), dtype='int32') label_embedding = Flatten()(Embedding(self.num_classes, 100)(label)) input = multiply([noise, label_embedding]) img = model(input) return Model([noise, label], img)
def build_critic(self): model = Sequential() model.add(Conv2D(16, kernel_size=3, strides=2, input_shape=self.img_shape, padding="same")) model.add(LeakyReLU(alpha=0.2)) model.add(Dropout(0.25)) model.add(Conv2D(32, kernel_size=3, strides=2, padding="same")) model.add(ZeroPadding2D(padding=((0, 1), (0, 1)))) model.add(BatchNormalization(momentum=0.8)) model.add(LeakyReLU(alpha=0.2)) model.add(Dropout(0.25)) model.add(Conv2D(64, kernel_size=3, strides=2, padding="same")) model.add(BatchNormalization(momentum=0.8)) model.add(LeakyReLU(alpha=0.2)) model.add(Dropout(0.25)) model.add(Conv2D(128, kernel_size=3, strides=1, padding="same")) model.add(BatchNormalization(momentum=0.8)) model.add(LeakyReLU(alpha=0.2)) model.add(Dropout(0.25)) model.add(Flatten()) model.add(Dense(1)) model.summary() img = Input(shape=self.img_shape) validity = model(img) return Model(img, validity)
def get_convBNeluMPdrop(num_conv_layers, nums_feat_maps, feat_scale_factor, conv_sizes, pool_sizes, dropout_conv, input_shape): #[Convolutional Layers] model = Sequential() input_shape_specified = False for conv_idx in xrange(num_conv_layers): # add conv layer n_feat_here = int(nums_feat_maps[conv_idx]*feat_scale_factor) if not input_shape_specified: print ' ---->>First conv layer is being added! with %d' % n_feat_here model.add(Convolution2D(n_feat_here, conv_sizes[conv_idx][0], conv_sizes[conv_idx][1], input_shape=input_shape, border_mode='same', init='he_normal')) input_shape_specified = True else: print ' ---->>%d-th conv layer is being added with %d units' % (conv_idx, n_feat_here) model.add(Convolution2D(n_feat_here, conv_sizes[conv_idx][0], conv_sizes[conv_idx][1], border_mode='same', init='he_normal')) # add BN, Activation, pooling, and dropout model.add(BatchNormalization(axis=1, mode=2)) model.add(keras.layers.advanced_activations.ELU(alpha=1.0)) # TODO: select activation model.add(MaxPooling2D(pool_size=pool_sizes[conv_idx])) if not dropout_conv == 0.0: model.add(Dropout(dropout_conv)) print ' ---->>Add dropout of %f for %d-th conv layer' % (dropout_conv, conv_idx) model.summary() return model
def run(dataset): batch_size = 16 nb_epoch = 20 train_X, train_y = dataset['train'] dev_X, dev_y = dataset['dev'] test_X, test_y = dataset['test'] print('train_X shape:', train_X.shape) print('Building model...') model = Sequential() model.add(Dense(1024, input_dim=train_X.shape[1], activation='sigmoid')) model.add(Dropout(0.2)) model.add(Dense(1024, activation='sigmoid')) model.add(Dropout(0.2)) model.add(Dense(2, activation='softmax')) model.summary() model.compile(loss='binary_crossentropy', optimizer='rmsprop', metrics=['accuracy']) model.fit(train_X, train_y, batch_size=batch_size, nb_epoch=nb_epoch, verbose=1, validation_data=(dev_X, dev_y)) score = model.evaluate(test_X, test_y, verbose=0) print('Test score:', score[0]) print('Test accuracy:', score[1])
def test_image_classification(): np.random.seed(1337) input_shape = (16, 16, 3) (x_train, y_train), (x_test, y_test) = get_test_data(num_train=500, num_test=200, input_shape=input_shape, classification=True, num_classes=4) y_train = to_categorical(y_train) y_test = to_categorical(y_test) model = Sequential([ layers.Conv2D(filters=8, kernel_size=3, activation='relu', input_shape=input_shape), layers.MaxPooling2D(pool_size=2), layers.Conv2D(filters=4, kernel_size=(3, 3), activation='relu', padding='same'), layers.GlobalAveragePooling2D(), layers.Dense(y_test.shape[-1], activation='softmax') ]) model.compile(loss='categorical_crossentropy', optimizer='rmsprop', metrics=['accuracy']) model.summary() history = model.fit(x_train, y_train, epochs=10, batch_size=16, validation_data=(x_test, y_test), verbose=0) assert history.history['val_acc'][-1] > 0.75 config = model.get_config() model = Sequential.from_config(config)
def build_generator(self): model = Sequential() model.add(Dense(256, input_dim=self.latent_dim)) model.add(LeakyReLU(alpha=0.2)) model.add(BatchNormalization(momentum=0.8)) model.add(Dense(512)) model.add(LeakyReLU(alpha=0.2)) model.add(BatchNormalization(momentum=0.8)) model.add(Dense(1024)) model.add(LeakyReLU(alpha=0.2)) model.add(BatchNormalization(momentum=0.8)) model.add(Dense(np.prod(self.img_shape), activation='tanh')) model.add(Reshape(self.img_shape)) model.summary() noise = Input(shape=(self.latent_dim,)) label = Input(shape=(1,), dtype='int32') label_embedding = Flatten()(Embedding(self.num_classes, self.latent_dim)(label)) model_input = multiply([noise, label_embedding]) img = model(model_input) return Model([noise, label], img)
def test_vector_classification(): ''' Classify random float vectors into 2 classes with logistic regression using 2 layer neural network with ReLU hidden units. ''' (x_train, y_train), (x_test, y_test) = get_test_data(num_train=500, num_test=200, input_shape=(20,), classification=True, num_classes=2) y_train = to_categorical(y_train) y_test = to_categorical(y_test) # Test with Sequential API model = Sequential([ layers.Dense(16, input_shape=(x_train.shape[-1],), activation='relu'), layers.Dense(8), layers.Activation('relu'), layers.Dense(y_train.shape[-1], activation='softmax') ]) model.compile(loss='categorical_crossentropy', optimizer='rmsprop', metrics=['accuracy']) model.summary() history = model.fit(x_train, y_train, epochs=15, batch_size=16, validation_data=(x_test, y_test), verbose=0) assert(history.history['val_acc'][-1] > 0.8) config = model.get_config() model = Sequential.from_config(config)
def build_generator(self): noise_shape = (self.noise_dims,) model = Sequential() model.add(Dense(self.noise_dims, input_shape=noise_shape)) #256 model.add(LeakyReLU(alpha=0.2)) model.add(BatchNormalization(momentum=0.8)) model.add(Dense(int(self.noise_dims*1.5))) # 512 model.add(LeakyReLU(alpha=0.2)) model.add(BatchNormalization(momentum=0.8)) model.add(Dense(int(self.noise_dims*2))) # 512 model.add(LeakyReLU(alpha=0.2)) model.add(BatchNormalization(momentum=0.8)) model.add(Dense(150)) # 1000 model.add(LeakyReLU(alpha=0.2)) model.add(BatchNormalization(momentum=0.8)) model.add(Dense(np.prod(self.img_shape), activation='tanh')) model.add(Reshape(self.img_shape)) model.summary() noise = Input(shape=noise_shape) img = model(noise) return Model(noise, img)
def build_generators(self): noise_shape = (100,) noise = Input(shape=noise_shape) # Shared weights between generators model = Sequential() model.add(Dense(256, input_shape=noise_shape)) model.add(LeakyReLU(alpha=0.2)) model.add(BatchNormalization(momentum=0.8)) model.add(Dense(512)) model.add(LeakyReLU(alpha=0.2)) model.add(BatchNormalization(momentum=0.8)) latent = model(noise) # Generator 1 g1 = Dense(1024)(latent) g1 = LeakyReLU(alpha=0.2)(g1) g1 = BatchNormalization(momentum=0.8)(g1) g1 = Dense(np.prod(self.img_shape), activation='tanh')(g1) img1 = Reshape(self.img_shape)(g1) # Generator 2 g2 = Dense(1024)(latent) g2 = LeakyReLU(alpha=0.2)(g2) g2 = BatchNormalization(momentum=0.8)(g2) g2 = Dense(np.prod(self.img_shape), activation='tanh')(g2) img2 = Reshape(self.img_shape)(g2) model.summary() return Model(noise, img1), Model(noise, img2)
def moustafa_model1(inputShape, nb_classes): model = Sequential() model.add(Convolution2D(62, 3, 3, border_mode='same', input_shape=inputShape)) model.add(Activation('relu')) model.add(Convolution2D(62, 3, 3, border_mode='same')) model.add(Activation('relu')) model.add(MaxPooling2D(pool_size=(2, 2))) model.add(Convolution2D(128, 3, 3, border_mode='same')) model.add(Activation('relu')) model.add(Convolution2D(128, 3, 3, border_mode='same')) model.add(Activation('relu')) model.add(MaxPooling2D(pool_size=(2, 2))) model.add(Convolution2D(64, 3, 3, border_mode='same')) model.add(Activation('relu')) model.add(Convolution2D(64, 3, 3, border_mode='same')) model.add(Activation('relu')) model.add(MaxPooling2D(pool_size=(2, 2))) model.add(Flatten()) model.add(Dense(128)) model.add(Activation('relu')) model.add(Dropout(0.5)) model.add(Dense(512)) model.add(Activation('relu')) model.add(Dropout(0.5)) model.add(Dense(nb_classes)) model.add(Activation('softmax')) model.summary() return model
def mnist_transferCNN_model(inputShape, nb_classes): # inputShape 3dim # define two groups of layers: feature (convolutions) and classification (dense) feature_layers = [ Convolution2D(32, 3, 3, border_mode='valid', input_shape=inputShape), Activation('relu'), Convolution2D(32, 3, 3), Activation('relu'), MaxPooling2D(pool_size=(2, 2)), Dropout(0.25), Flatten(), ] classification_layers = [ Dense(128), Activation('relu'), Dropout(0.5), Dense(nb_classes), Activation('softmax') ] # create complete model model = Sequential() for l in feature_layers + classification_layers: model.add(l) model.summary() return model
def create_model(train_X, test_X, train_y, test_y): model = Sequential() model.add(Dense(500, input_shape=(238,),kernel_initializer= {{choice(['glorot_uniform','random_uniform'])}})) model.add(BatchNormalization(epsilon=1e-06, mode=0, momentum=0.9, weights=None)) model.add(Activation({{choice(['relu','sigmoid','tanh'])}})) model.add(Dropout({{uniform(0, 0.3)}})) model.add(Dense({{choice([128,256])}})) model.add(Activation('relu')) model.add(Dropout({{uniform(0, 0.4)}})) model.add(Dense({{choice([128,256])}})) model.add(Activation({{choice(['relu','tanh'])}})) model.add(Dropout(0.3)) model.add(Dense(41)) model.add(Activation('softmax')) model.compile(loss='categorical_crossentropy', metrics=['accuracy'], optimizer={{choice(['rmsprop', 'adam'])}}) model.summary() early_stops = EarlyStopping(patience=3, monitor='val_acc') ckpt_callback = ModelCheckpoint('keras_model', monitor='val_loss', verbose=1, save_best_only=True, mode='auto') model.fit(train_X, train_y, batch_size={{choice([128,264])}}, nb_epoch={{choice([10,20])}}, validation_data=(test_X, test_y), callbacks=[early_stops,ckpt_callback]) score, acc = model.evaluate(test_X, test_y, verbose=0) print('Test accuracy:', acc) return {'loss': -acc, 'status': STATUS_OK, 'model': model}
def build_discriminator(self): model = Sequential() model.add(Dense(512, input_dim=np.prod(self.img_shape))) model.add(LeakyReLU(alpha=0.2)) model.add(Dense(512)) model.add(LeakyReLU(alpha=0.2)) model.add(Dropout(0.4)) model.add(Dense(512)) model.add(LeakyReLU(alpha=0.2)) model.add(Dropout(0.4)) model.add(Dense(1, activation='sigmoid')) model.summary() img = Input(shape=self.img_shape) label = Input(shape=(1,), dtype='int32') label_embedding = Flatten()(Embedding(self.num_classes, np.prod(self.img_shape))(label)) flat_img = Flatten()(img) model_input = multiply([flat_img, label_embedding]) validity = model(model_input) return Model([img, label], validity)
def test_temporal_classification(): ''' Classify temporal sequences of float numbers of length 3 into 2 classes using single layer of GRU units and softmax applied to the last activations of the units ''' np.random.seed(1337) (x_train, y_train), (x_test, y_test) = get_test_data(num_train=200, num_test=20, input_shape=(3, 4), classification=True, num_classes=2) y_train = to_categorical(y_train) y_test = to_categorical(y_test) model = Sequential() model.add(layers.GRU(8, input_shape=(x_train.shape[1], x_train.shape[2]))) model.add(layers.Dense(y_train.shape[-1], activation='softmax')) model.compile(loss='categorical_crossentropy', optimizer='rmsprop', metrics=['accuracy']) model.summary() history = model.fit(x_train, y_train, epochs=4, batch_size=10, validation_data=(x_test, y_test), verbose=0) assert(history.history['acc'][-1] >= 0.8) config = model.get_config() model = Sequential.from_config(config)
def create_Tensorflow_smallCIFAR10(): """ Use keras to create CIFAR-10 built in tensorflow github example Return: the model object of keras """ # 1st Convolution layer model = Sequential() model.add(Convolution2D(64, 3, 3, border_mode='valid', input_shape=(3, 200, 200), bias=True)) model.add(Activation('relu')) model.add(MaxPooling2D(pool_size=(3, 3), strides=(2,2))) model.add(BatchNormalization()) # 2nd Convolution layer model.add(Convolution2D(32, 3, 3, border_mode='valid')) model.add(Activation('relu')) model.add(BatchNormalization()) model.add(MaxPooling2D(pool_size=(3, 3), strides=(2,2))) # 1st Dense model.add(Flatten()) model.add(Dense(384, init=init_tensorflowCIFAR)) model.add(Activation('relu')) # 2nd Dense model.add(Dense(192, init='normal')) model.add(Activation('relu')) # Softmax model.add(Dense(2, init='normal')) model.add(Activation('softmax')) print model.summary() return model
def test_recursive(): # test layer-like API graph = Graph() graph.add_input(name='input1', input_shape=(32,)) graph.add_node(Dense(16), name='dense1', input='input1') graph.add_node(Dense(4), name='dense2', input='input1') graph.add_node(Dense(4), name='dense3', input='dense1') graph.add_output(name='output1', inputs=['dense2', 'dense3'], merge_mode='sum') seq = Sequential() seq.add(Dense(32, input_shape=(32,))) seq.add(graph) seq.add(Dense(4)) seq.compile('rmsprop', 'mse') seq.fit(X_train_graph, y_train_graph, batch_size=10, nb_epoch=10) loss = seq.evaluate(X_test_graph, y_test_graph) # test serialization config = seq.get_config() new_graph = Sequential.from_config(config) seq.summary() json_str = seq.to_json() new_graph = model_from_json(json_str) yaml_str = seq.to_yaml() new_graph = model_from_yaml(yaml_str)
def create_LeNet(weights_path=None): """ Use keras to create LeNet structure Return: the model object of keras """ model = Sequential() # 1st Convolution layer model.add(Convolution2D(8, 28, 28, border_mode='same', input_shape=(3, 200, 200))) model.add(Activation('relu')) model.add(MaxPooling2D(pool_size=(2, 2), strides=(2,2))) # 2nd Convolution layer model.add(Convolution2D(20, 10, 10, border_mode='same')) model.add(Activation('relu')) model.add(MaxPooling2D(pool_size=(2, 2), strides=(2,2))) # Dense model.add(Flatten()) model.add(Dense(120, activation='relu')) model.add(Dense(2, activation='softmax')) print model.summary() return model
def buildIrrigationDetectorModel(inputShape): nb_filter = 64 filter_length = 4 model = Sequential() model.add(AveragePooling1D(pool_size=4,input_shape=inputShape)) model.add(Conv1D(nb_filter=nb_filter, kernel_size=filter_length, border_mode="valid", activation="relu", )) model.add(MaxPooling1D(pool_size=2)) model.add(BatchNormalization()) model.add(Conv1D(nb_filter=int(nb_filter), kernel_size=int(filter_length), border_mode="valid", activation="relu", )) model.add(Flatten()) model.add((Dense(100, activation='relu'))) model.add((Dense(1, activation='sigmoid'))) optimizer = Adam(lr=0.0001, beta_1=0.9, beta_2=0.999, epsilon=1e-08, decay=0.0) model.compile(optimizer=optimizer, loss='binary_crossentropy', metrics=['accuracy'] ) model.summary() return model
def create_fullCIFAR10(): """ Use keras to create CIFAR-10 archetecture Return: the model object of keras """ # 1st Convolution layer model = Sequential() model.add(Convolution2D(32, 5, 5, border_mode='valid', input_shape=(3, 200, 200))) model.add(MaxPooling2D(pool_size=(3, 3))) model.add(Activation('relu')) model.add(BatchNormalization()) # 2nd Convolution layer model.add(Convolution2D(32, 5, 5, border_mode='valid')) model.add(Activation('relu')) model.add(MaxPooling2D(pool_size=(3, 3))) model.add(BatchNormalization()) # 3rd Convolution layer model.add(Convolution2D(64, 5, 5, border_mode='valid')) model.add(Activation('relu')) model.add(MaxPooling2D(pool_size=(3, 3))) # Dense model.add(Flatten()) model.add(Dense(250, init='normal')) model.add(Activation('tanh')) # Softmax model.add(Dense(2, init='normal')) model.add(Activation('softmax')) print model.summary() return model
def trainModel(): inputs, correctOutputs = getNNData() print("Collected data") trainingInputs = inputs[:len(inputs)//2] trainingOutputs = correctOutputs[:len(correctOutputs)//2] testInputs = inputs[len(inputs)//2:] testOutputs = correctOutputs[len(correctOutputs)//2:] model = Sequential() model.add(Dense(24, input_shape=(24, ))) model.add(Activation('tanh')) model.add(Dense(24)) model.add(Activation('tanh')) model.add(Dense(5)) model.add(Activation('softmax')) model.summary() model.compile(loss='mean_squared_error', optimizer=SGD(lr=0.1, decay=1e-6, momentum=0.9, nesterov=True)) model.fit(trainingInputs, trainingOutputs, validation_data=(testInputs, testOutputs)) score = model.evaluate(testInputs, testOutputs, verbose=0) print(score) json_string = model.to_json() open('my_model_architecture.json', 'w').write(json_string) model.save_weights('my_model_weights.h5', overwrite=True)
def build_generator(self): model = Sequential() model.add(Dense(8 * 128 * 128, activation="relu", input_dim=self.latent_dim)) model.add(Reshape((128, 128, 8))) # model.add(UpSampling2D()) # model.add(Conv2D(128, kernel_size=3, padding="same")) model.add(Conv2DTranspose(128, kernel_size=3, padding="same")) model.add(BatchNormalization(momentum=0.8)) model.add(LeakyReLU(alpha=0.2)) # # model.add(UpSampling2D()) # # model.add(Conv2D(128, kernel_size=3, padding="same")) # model.add(Conv2DTranspose(128, kernel_size=3, padding="same")) # model.add(BatchNormalization(momentum=0.8)) # model.add(LeakyReLU(alpha=0.2)) # model.add(UpSampling2D()) # model.add(Conv2D(64, kernel_size=3, padding="same")) model.add(Conv2DTranspose(64, kernel_size=3, padding="same")) model.add(BatchNormalization(momentum=0.8)) model.add(LeakyReLU(alpha=0.2)) # model.add(Conv2D(self.channels, kernel_size=3, padding="same")) model.add(Conv2DTranspose(self.channels, kernel_size=3, padding="same")) model.add(Activation("tanh")) model.summary() noise = Input(shape=(self.latent_dim,)) img = model(noise) return Model(noise, img)
def build_discriminator(self): model = Sequential() model.add(Conv2D(32, kernel_size=3, strides=2, input_shape=self.img_shape, padding="same")) model.add(LeakyReLU(alpha=0.2)) model.add(Dropout(0.25)) model.add(Conv2D(64, kernel_size=3, strides=2, padding="same")) model.add(ZeroPadding2D(padding=((0,1),(0,1)))) model.add(LeakyReLU(alpha=0.2)) model.add(Dropout(0.25)) model.add(BatchNormalization(momentum=0.8)) model.add(Conv2D(128, kernel_size=3, strides=2, padding="same")) model.add(LeakyReLU(alpha=0.2)) model.add(Dropout(0.25)) model.add(BatchNormalization(momentum=0.8)) model.add(Conv2D(256, kernel_size=3, strides=1, padding="same")) model.add(LeakyReLU(alpha=0.2)) model.add(Dropout(0.25)) model.add(Flatten()) model.summary() img = Input(shape=self.img_shape) features = model(img) valid = Dense(1, activation="sigmoid")(features) label = Dense(self.num_classes+1, activation="softmax")(features) return Model(img, [valid, label])
def baseline_model(): #CNN参数 embedding_dims = 50 filters = 250 kernel_size = 3 hidden_dims = 250 model = Sequential() model.add(Embedding(max_features, embedding_dims)) model.add(Conv1D(filters, kernel_size, padding='valid', activation='relu', strides=1)) #池化 model.add(GlobalMaxPooling1D()) model.add(Dense(2, activation='softmax')) model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy']) #可视化 plot_model(model, to_file='yelp-cnn-model.png',show_shapes=True) model.summary() return model
def main(): train_X = np.load('train_X.npy') train_y = np.load('train_y.npy') test_X = np.load('test_X.npy') test_y = np.load('test_y.npy') model = Sequential() model.add(Flatten(input_shape=(15,60,2))) model.add(Dense(128)) model.add(Activation('relu')) model.add(Dense(128)) model.add(Activation('relu')) model.add(Dense(128)) model.add(Activation('relu')) model.add(Dense(900)) model.add(Activation('sigmoid')) print model.summary() adam = Adam(0.001) #adagrad = Adagrad(lr=0.01) model.compile(loss='mse', optimizer=adam) model.fit(train_X, train_y, batch_size=batch_size, nb_epoch=nb_epoch, verbose=1, validation_data=(test_X, test_y)) model.save_weights('model.h5', overwrite=True)
def main(): ext = extension_from_parameters() out_dim = 1 loss = 'mse' metrics = None #metrics = ['accuracy'] if CATEGORICAL else None datagen = RegressionDataGenerator() train_gen = datagen.flow(batch_size=BATCH_SIZE) val_gen = datagen.flow(val=True, batch_size=BATCH_SIZE) val_gen2 = datagen.flow(val=True, batch_size=BATCH_SIZE) model = Sequential() for layer in LAYERS: if layer: model.add(Dense(layer, input_dim=datagen.input_dim, activation=ACTIVATION)) if DROP: model.add(Dropout(DROP)) model.add(Dense(out_dim)) model.summary() model.compile(loss=loss, optimizer='rmsprop', metrics=metrics) train_samples = int(datagen.n_train/BATCH_SIZE) * BATCH_SIZE val_samples = int(datagen.n_val/BATCH_SIZE) * BATCH_SIZE history = BestLossHistory(val_gen2, val_samples, ext) checkpointer = ModelCheckpoint(filepath='model'+ext+'.h5', save_best_only=True) model.fit_generator(train_gen, train_samples, nb_epoch = NB_EPOCH, validation_data = val_gen, nb_val_samples = val_samples, callbacks=[history, checkpointer])
class QLearn: def __init__(self, actions, epsilon, alpha, gamma): # instead of a dictionary, we'll be using # a neural network # self.q = {} self.epsilon = epsilon # exploration constant self.alpha = alpha # discount constant self.gamma = gamma # discount factor self.actions = actions # Build the neural network self.network = Sequential() self.network.add(Dense(50, init='lecun_uniform', input_shape=(4,))) # self.network.add(Activation('sigmoid')) #self.network.add(Dropout(0.2)) self.network.add(Dense(20, init='lecun_uniform')) # self.network.add(Activation('sigmoid')) # #self.network.add(Dropout(0.2)) self.network.add(Dense(2, init='lecun_uniform')) # self.network.add(Activation('linear')) #linear output so we can have range of real-valued outputs # rms = SGD(lr=0.0001, decay=1e-6, momentum=0.5) # explodes to non rms = RMSprop() # rms = Adagrad() # rms = Adam() self.network.compile(loss='mse', optimizer=rms) # Get a summary of the network self.network.summary()
def cifar10_cnn_model_yingnan(inputShape, nb_classes): #inputShape 3dim model = Sequential() model.add(Convolution2D(64, 3, 3, border_mode='same', input_shape=inputShape)) model.add(Activation('relu')) model.add(Convolution2D(64, 3, 3)) model.add(Activation('relu')) model.add(MaxPooling2D(pool_size=(2, 2))) model.add(Dropout(0.25)) model.add(Convolution2D(64, 3, 3, border_mode='same')) model.add(Activation('relu')) model.add(Convolution2D(64, 3, 3)) model.add(Activation('relu')) model.add(MaxPooling2D(pool_size=(2, 2))) model.add(Dropout(0.25)) model.add(Flatten()) model.add(Dense(512)) model.add(Activation('relu')) model.add(Dropout(0.5)) model.add(Dense(nb_classes)) model.add(Activation('softmax')) model.summary() return model