我们从Python开源项目中,提取了以下5个代码示例,用于说明如何使用keras.utils()。
def run_benchmark(self, gpus=0): num_classes = 10 # Generate random input data input_shape = (self.num_samples, 28, 28) x_train, y_train = generate_img_input_data(input_shape) x_train = x_train.reshape(self.num_samples, 784) x_train = x_train.astype('float32') x_train /= 255 # convert class vectors to binary class matrices y_train = keras.utils.to_categorical(y_train, num_classes) model = Sequential() model.add(Dense(512, activation='relu', input_shape=(784,))) model.add(Dropout(0.2)) model.add(Dense(512, activation='relu')) model.add(Dropout(0.2)) model.add(Dense(num_classes, activation='softmax')) if keras.backend.backend() is "tensorflow" and gpus > 1: model = multi_gpu_model(model, gpus=gpus) model.compile(loss='categorical_crossentropy', optimizer=RMSprop(), metrics=['accuracy']) # create a distributed trainer for cntk if keras.backend.backend() is "cntk" and gpus > 1: start, end = cntk_gpu_mode_config(model, x_train.shape[0]) x_train = x_train[start: end] y_train = y_train[start: end] time_callback = timehistory.TimeHistory() model.fit(x_train, y_train, batch_size=self.batch_size, epochs=self.epochs, verbose=1, callbacks=[time_callback]) self.total_time = 0 for i in range(1, self.epochs): self.total_time += time_callback.times[i]
def i_vis_model(model): from keras.utils import vis_utils SVG(vis_utils.model_to_dot(model, show_shapes=True).create(prog='dot', format='svg'))
def vis_model(model, name='net2net', show_shapes=True): from keras.utils import vis_utils path = osp.dirname(name) name = osp.basename(name) if path == '': path = name sav_path = osp.join(root_dir, "output", path) mkdir_p(sav_path, delete=False) keras.models.save_model(model, osp.join(sav_path, name + '.h5')) try: # vis_utils.plot_model(model, to_file=osp.join(sav_path, name + '.pdf'), show_shapes=show_shapes) vis_utils.plot_model(model, to_file=osp.join(sav_path, name + '.png'), show_shapes=show_shapes) except Exception as inst: logger.error("cannot keras.plot_model {}".format(inst))
def save_samples(samples, img_path, vis_fn): batch_size = len(samples) rows, cols = utils.factorize_number(batch_size) vis_fn(samples, rows, cols, img_path)
def run_benchmark(self, gpus=0): num_classes = 10 # Generate random input data input_shape = (self.num_samples, 3, 32, 32) x_train, y_train = generate_img_input_data(input_shape) y_train = np.reshape(y_train, (len(y_train), 1)) y_train = keras.utils.to_categorical(y_train, 10) if keras.backend.image_data_format() == 'channels_last': x_train = x_train.transpose(0, 2, 3, 1) model = Sequential() model.add(Conv2D(32, (3, 3), padding='same', input_shape=x_train.shape[1:], activation='relu')) model.add(Conv2D(32, (3, 3), activation='relu')) model.add(MaxPooling2D(pool_size=(2, 2))) model.add(Dropout(0.25)) model.add(Conv2D(64, (3, 3), padding='same', activation='relu')) model.add(Conv2D(64, (3, 3), activation='relu')) model.add(MaxPooling2D(pool_size=(2, 2))) model.add(Dropout(0.25)) model.add(Flatten()) model.add(Dense(512, activation='relu')) model.add(Dropout(0.5)) model.add(Dense(num_classes, activation='softmax')) opt = keras.optimizers.rmsprop(lr=0.0001, decay=1e-6) if keras.backend.backend() is "tensorflow" and gpus > 1: model = multi_gpu_model(model, gpus=gpus) model.compile(loss='categorical_crossentropy', optimizer=opt, metrics=['accuracy']) x_train = x_train.astype('float32') x_train /= 255 # create a distributed trainer for cntk if keras.backend.backend() is "cntk" and gpus > 1: start, end = cntk_gpu_mode_config(model, x_train.shape[0]) x_train = x_train[start: end] y_train = y_train[start: end] time_callback = timehistory.TimeHistory() model.fit(x_train, y_train, batch_size=self.batch_size, epochs=self.epochs, shuffle=True, callbacks=[time_callback]) self.total_time = 0 for i in range(1, self.epochs): self.total_time += time_callback.times[i]