Questions tagged «keras»

Keras是一个神经网络库,在Python和R中提供了高级API。对于与如何使用此API有关的问题,请使用此标签。还请包含您使用的语言/后端的标签([python],[r],[tensorflow],[theano],[cntk])。如果您正在使用tensorflow的内置keras,请使用[tf.keras]标签。

6
加载经过训练的Keras模型并继续训练
我想知道是否有可能保存经过部分训练的Keras模型并在再次加载模型后继续进行训练。 这样做的原因是,将来我将拥有更多的训练数据,并且我不想再次对整个模型进行训练。 我正在使用的功能是: #Partly train model model.fit(first_training, first_classes, batch_size=32, nb_epoch=20) #Save partly trained model model.save('partly_trained.h5') #Load partly trained model from keras.models import load_model model = load_model('partly_trained.h5') #Continue training model.fit(second_training, second_classes, batch_size=32, nb_epoch=20) 编辑1:添加了完全正常的示例 对于第10个时期后的第一个数据集,最后一个时期的损失将为0.0748,精度为0.9863。 保存,删除和重新加载模型后,第二个数据集上训练的模型的损失和准确性分别为0.1711和0.9504。 这是由新的训练数据还是完全重新训练的模型引起的? """ Model by: http://machinelearningmastery.com/ """ # load (downloaded if needed) the MNIST dataset import …

5
如何在Keras中从HDF5文件加载模型?
如何在Keras中从HDF5文件加载模型? 我试过的 model = Sequential() model.add(Dense(64, input_dim=14, init='uniform')) model.add(LeakyReLU(alpha=0.3)) model.add(BatchNormalization(epsilon=1e-06, mode=0, momentum=0.9, weights=None)) model.add(Dropout(0.5)) model.add(Dense(64, init='uniform')) model.add(LeakyReLU(alpha=0.3)) model.add(BatchNormalization(epsilon=1e-06, mode=0, momentum=0.9, weights=None)) model.add(Dropout(0.5)) model.add(Dense(2, init='uniform')) model.add(Activation('softmax')) sgd = SGD(lr=0.1, decay=1e-6, momentum=0.9, nesterov=True) model.compile(loss='binary_crossentropy', optimizer=sgd) checkpointer = ModelCheckpoint(filepath="/weights.hdf5", verbose=1, save_best_only=True) model.fit(X_train, y_train, nb_epoch=20, batch_size=16, show_accuracy=True, validation_split=0.2, verbose = 2, callbacks=[checkpointer]) 上面的代码成功将最佳模​​型保存到名为weights.hdf5的文件中。然后,我要加载该模型。以下代码显示了我如何尝试这样做: model2 …

3
如何在keras中连接两层?
我有一个具有两层的神经网络的示例。第一层有两个参数,并有一个输出。第二个参数应接受一个参数作为第一层的结果,并附加一个参数。它看起来应该像这样: x1 x2 x3 \ / / y1 / \ / y2 因此,我创建了一个具有两层的模型,并尝试将它们合并,但它返回一个错误:The first layer in a Sequential model must get an "input_shape" or "batch_input_shape" argument.在line上result.add(merged)。 模型: first = Sequential() first.add(Dense(1, input_shape=(2,), activation='sigmoid')) second = Sequential() second.add(Dense(1, input_shape=(1,), activation='sigmoid')) result = Sequential() merged = Concatenate([first, second]) ada_grad = Adagrad(lr=0.1, epsilon=1e-08, …

5
验证模型时,Keras中的详细用法是什么?
我是第一次运行LSTM模型。这是我的模型: opt = Adam(0.002) inp = Input(...) print(inp) x = Embedding(....)(inp) x = LSTM(...)(x) x = BatchNormalization()(x) pred = Dense(5,activation='softmax')(x) model = Model(inp,pred) model.compile(....) idx = np.random.permutation(X_train.shape[0]) model.fit(X_train[idx], y_train[idx], nb_epoch=1, batch_size=128, verbose=1) 训练模型时,冗长的用法是什么?

5
Keras,训练模型后如何预测?
我正在使用路透社示例数据集,它运行良好(我的模型已经过训练)。我阅读了有关如何保存模型的信息,因此以后可以加载它以再次使用。但是,如何使用此保存的模型来预测新文本?我用models.predict()吗? 我是否需要以特殊方式准备此文本? 我尝试过 import keras.preprocessing.text text = np.array(['this is just some random, stupid text']) print(text.shape) tk = keras.preprocessing.text.Tokenizer( nb_words=2000, filters=keras.preprocessing.text.base_filter(), lower=True, split=" ") tk.fit_on_texts(text) pred = tk.texts_to_sequences(text) print(pred) model.predict(pred) 但是我总是 (1L,) [[2, 4, 1, 6, 5, 7, 3]] --------------------------------------------------------------------------- AttributeError Traceback (most recent call last) <ipython-input-83-42d744d811fb> in <module>() 7 print(pred) …


5
使用ImageDataGenerator时的Keras分割火车测试集
我有一个目录,其中包含图像的子文件夹(根据标签)。我想在Keras中使用ImageDataGenerator时将此数据分为训练集和测试集。尽管keras中的model.fit()具有用于指定拆分的参数validate_split,但对于model.fit_generator()我找不到相同的参数。怎么做 ? train_datagen = ImageDataGenerator(rescale=1./255, shear_range=0.2, zoom_range=0.2, horizontal_flip=True) train_generator = train_datagen.flow_from_directory( train_data_dir, target_size=(img_width, img_height), batch_size=32, class_mode='binary') model.fit_generator( train_generator, samples_per_epoch=nb_train_samples, nb_epoch=nb_epoch, validation_data=??, nb_val_samples=nb_validation_samples) 我没有用于验证数据的单独目录,需要将其与训练数据分开

7
如何根据损失值告诉Keras停止训练?
目前,我使用以下代码: callbacks = [ EarlyStopping(monitor='val_loss', patience=2, verbose=0), ModelCheckpoint(kfold_weights_path, monitor='val_loss', save_best_only=True, verbose=0), ] model.fit(X_train.astype('float32'), Y_train, batch_size=batch_size, nb_epoch=nb_epoch, shuffle=True, verbose=1, validation_data=(X_valid, Y_valid), callbacks=callbacks) 它告诉Keras,如果损失在2个时期内没有改善,就停止训练。但是我要在损失小于某个恒定的“ THR”后停止训练: if val_loss < THR: break 我已经在文档中看到有可能进行自己的回调:http : //keras.io/callbacks/ 但没有发现如何停止训练过程。我需要个建议。

1
在Keras中,TimeDistributed层的作用是什么?
我试图了解TimeDistributed包装器在Keras中的作用。 我得到了TimeDistributed“将层应用于输入的每个时间片”。 但是我做了一些实验,却得到了我无法理解的结果。 简而言之,对于LSTM层,TimeDistributed和Just Dense层的结果相同。 model = Sequential() model.add(LSTM(5, input_shape = (10, 20), return_sequences = True)) model.add(TimeDistributed(Dense(1))) print(model.output_shape) model = Sequential() model.add(LSTM(5, input_shape = (10, 20), return_sequences = True)) model.add((Dense(1))) print(model.output_shape) 对于这两个模型,我得到的输出形状为(None,10,1)。 在RNN层之后,谁能解释TimeDistributed和Dense层之间的区别?

2
model.compile()是否初始化Keras(tensorflow后端)中的所有权重和偏差?
当我开始训练模型时,以前没有保存任何模型。我可以model.compile()安全使用。我现在将模型保存在h5文件中,以使用进行进一步的培训checkpoint。 说,我想进一步训练模型。我现在很困惑:我可以model.compile()在这里使用吗?并将其放在model = load_model()声明之前还是之后?如果model.compile()重新初始化所有权重和偏差,则应将其放在model = load_model()语句之前。 在发现一些讨论之后,在我看来,model.compile()仅当我之前没有保存任何模型时才需要。保存模型后,无需使用model.compile()。是真的还是假的?当我想使用训练好的模型进行预测时,应该model.compile()在预测之前使用吗?
81 tensorflow  keras 

10
如何在keras中获得可复制的结果
每次我imdb_lstm.py从Keras框架(https://github.com/fchollet/keras/blob/master/examples/imdb_lstm.py)运行示例时,我都会得到不同的结果(测试准确性)。代码包含np.random.seed(1337)在顶部,而不是任何keras进口。应该防止它为每次运行生成不同的数字。我想念什么? 更新:如何复制: 安装Keras(http://keras.io/) 多次执行https://github.com/fchollet/keras/blob/master/examples/imdb_lstm.py。它将训练模型并输出测试精度。 预期结果:每次运行的测试准确性均相同。 实际结果:每次运行的测试准确性都不同。 UPDATE2:我正在Windows 8.1和MinGW / msys上运行它,模块版本: theano 0.7.0 numpy 1.8.1 scipy 0.14.0c1 UPDATE3:我将问题缩小了一点。如果我在GPU上运行示例(设置theano标志device = gpu0),则每次都会获得不同的测试准确性,但是如果我在CPU上运行,那么一切都会按预期进行。我的显卡:NVIDIA GeForce GT 635)
78 python  numpy  theano  keras 

9
深度学习难的原因
也许这个问题太笼统,但是谁能解释导致卷积神经网络发散的原因是什么? 细节: 我正在使用Tensorflow的iris_training模型处理一些自己的数据,并不断获取 错误:张量流:模型因损失= NaN而发散。 追溯... tensorflow.contrib.learn.python.learn.monitors.NanLossDuringTrainingError:训练期间NaN丢失。 回溯源于以下行: tf.contrib.learn.DNNClassifier(feature_columns=feature_columns, hidden_units=[300, 300, 300], #optimizer=tf.train.ProximalAdagradOptimizer(learning_rate=0.001, l1_regularization_strength=0.00001), n_classes=11, model_dir="/tmp/iris_model") 我尝试过调整优化器,将学习率设置为零,并且不使用优化器。任何对网络层,数据大小等的见解都将受到赞赏。

7
从Keras功能模型获取类标签
我在Keras中有一个功能模型(来自repo示例的Resnet50)。我使用ImageDataGenerator和flow_from_directory数据对其进行了训练,并将模型保存到.h5文件中。当我打电话时,model.predict我得到了一系列的类概率。但是我想将它们与类标签相关联(在我的情况下-文件夹名称)。我怎样才能得到它们?我发现可以使用model.predict_classesand model.predict_proba,但是我在Functional模型中没有这些功能,仅在Sequential中。
76 python  keras 



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.