Questions tagged «keras»

Keras是一个用Python编写的极简,高度模块化的神经网络库。

2
是否有必要更改Keras中Early Stopping回调所使用的指标?
当在Keras中使用Early Stopping回调时,某些指标(通常是验证损失)没有增加时,训练将停止。有没有一种方法可以使用其他指标(例如精度,召回率,f度量)代替验证损失?到目前为止,我所看到的所有示例都与此示例类似:callbacks.EarlyStopping(monitor ='val_loss',耐心= 5,冗长= 0,mode ='auto')

1
Keras中的多任务学习
我正在尝试在Keras中实现共享层。我确实看到Keras拥有keras.layers.concatenate,但是我从文档中不确定其用法。我可以使用它来创建多个共享层吗?如下所示,使用Keras来实现简单的共享神经网络的最佳方法是什么? 请注意,所有3个NN的输入,输出和共享层的所有形状都相同。三个NN中有多个共享层(和非共享层)。着色层对于每个NN都是唯一的,并且具有相同的形状。 基本上,该图表示具有多个共享隐藏层的3个相同的NN,然后是多个非共享隐藏层。 我不确定如何像Twitter示例中那样共享多个层,只有一个共享层(API文档中的示例)。

1
多维和多元时间序列预测(RNN / LSTM)Keras
我一直在尝试了解如何使用Keras(或TensorFlow)来表示和塑造数据以进行多维和多变量时间序列预测,但是在阅读了许多有关如何在Web站点中呈现数据的博客文章/教程/文档后,我仍然不清楚。正确的形状(大多数示例略少一些) 我的数据集: 几个城市 我有关于温度,汽车通行性,湿度的信息 可以说最近2年(每天1条记录) 我想做的事情: 我想使用温度,汽车通行和湿度的滞后版本来预测每个城市明年的平均气温(当然会有更多功能,但这只是一个思想示例)。 我感到困惑的是: 如果我有2个城市,并且在365天内记录了3个要素。我应该如何调整我的输入,以便模型可以输出这两个城市365天的预报(即365天的2个时间序列的温度)? 直观上,张量形状将(?, 365, 3)持续365天和3个特征。但是我不确定该坚持第一维度是什么,最重要的是,如果一定要针对城市数量,我会感到惊讶。但与此同时,我也不知道如何在模型中指定必须正确理解尺寸的模型。 任何指针都会有所帮助。我对问题的其余部分非常熟悉(即,您如何在Keras中构建网络等,因为我已经为其他神经网络完成了此操作,但更具体地说是如何最好地编码所需输入的序列)。 哦,而且,我想我可以对每个城市进行独立的培训和预测,但是我敢肯定,每个人都会同意有可能要学习的东西并不是每个城市所独有的,只有在考虑其中的几个时才能看到,因此,为什么我认为在模型中对其进行编码很重要。
12 python  keras  rnn  lstm 

4
用神经网络检测异常
我有一个每天生成的大型多维数据集。 与前几天相比,什么是检测任何类型的“异常”的好方法?这是神经网络可以解决的合适问题吗? 任何建议表示赞赏。 附加信息:没有示例,因此该方法应自行检测异常

2
即使验证损失仍然下降,也可能发生过度拟合吗?
我在Keras中有一个卷积+ LSTM模型,与此类似(参考文献1),我正在用它进行Kaggle竞赛。架构如下所示。我已经在我标记的11000个样本集上进行了训练(两个类别,初始患病率是〜9:1,所以我将1的样本上采样到大约1/1的比例)进行了50个时期的验证,拆分率为20%。有一阵子,但我认为它受到噪音和掉线层的控制。 模型看起来像是在进行出色的训练,最终在整个训练集上得分为91%,但是在对测试数据集进行测试时,绝对是垃圾。 注意:验证准确性高于训练准确性。这与“典型”过度拟合相反。 我的直觉是,考虑到验证的细微差别,该模型仍在设法过于严格地适应输入集而失去概括性。另一个线索是val_acc大于acc,这似乎很可疑。这是最有可能的情况吗? 如果这太适合了,那么增加验证间隔会完全缓解吗,还是我会遇到同样的问题,因为平均而言,每个样本仍会看到整个时期的一半? 该模型: Layer (type) Output Shape Param # Connected to ==================================================================================================== convolution1d_19 (Convolution1D) (None, None, 64) 8256 convolution1d_input_16[0][0] ____________________________________________________________________________________________________ maxpooling1d_18 (MaxPooling1D) (None, None, 64) 0 convolution1d_19[0][0] ____________________________________________________________________________________________________ batchnormalization_8 (BatchNormal(None, None, 64) 128 maxpooling1d_18[0][0] ____________________________________________________________________________________________________ gaussiannoise_5 (GaussianNoise) (None, None, 64) 0 batchnormalization_8[0][0] ____________________________________________________________________________________________________ lstm_16 (LSTM) (None, …

2
验证损失和准确性保持恒定
我想实现这个上一所集医疗图像的纸。我在Keras上做。该网络主要由4个conv和max-pool层组成,然后是一个完全连接的层和s​​oft max分类器。 据我所知,我遵循了本文提到的架构。但是,验证损失和准确性始终保持不变。准确性似乎固定为〜57.5%。 对于我可能会出错的任何帮助,将不胜感激。 我的代码: from keras.models import Sequential from keras.layers import Activation, Dropout, Dense, Flatten from keras.layers import Convolution2D, MaxPooling2D from keras.optimizers import SGD from keras.utils import np_utils from PIL import Image import numpy as np from sklearn.utils import shuffle from sklearn.cross_validation import train_test_split import theano import os import …

1
我应该使用多少个LSTM细胞?
是否有关于我应使用的LSTM电池的最小,最大和“合理”数量的经验法则(或实际规则)?具体来说,我与TensorFlow和property 有关的BasicLSTMCell有关num_units。 请假设我有以下定义的分类问题: t - number of time steps n - length of input vector in each time step m - length of output vector (number of classes) i - number of training examples 例如,训练示例的数量应该大于: 4*((n+1)*m + m*m)*c c单元数在哪里?我基于此:如何计算LSTM网络的参数数量?据我了解,这应该给出参数的总数,该总数应少于训练示例的数量。
12 rnn  machine-learning  r  predictive-modeling  random-forest  python  language-model  sentiment-analysis  encoding  machine-learning  deep-learning  neural-network  dataset  caffe  classification  xgboost  multiclass-classification  unbalanced-classes  time-series  descriptive-statistics  python  r  clustering  machine-learning  python  deep-learning  tensorflow  machine-learning  python  predictive-modeling  probability  scikit-learn  svm  machine-learning  python  classification  gradient-descent  regression  research  python  neural-network  deep-learning  convnet  keras  python  tensorflow  machine-learning  deep-learning  tensorflow  python  r  bigdata  visualization  rstudio  pandas  pyspark  dataset  time-series  multilabel-classification  machine-learning  neural-network  ensemble-modeling  kaggle  machine-learning  linear-regression  cnn  convnet  machine-learning  tensorflow  association-rules  machine-learning  predictive-modeling  training  model-selection  neural-network  keras  deep-learning  deep-learning  convnet  image-classification  predictive-modeling  prediction  machine-learning  python  classification  predictive-modeling  scikit-learn  machine-learning  python  random-forest  sampling  training  recommender-system  books  python  neural-network  nlp  deep-learning  tensorflow  python  matlab  information-retrieval  search  search-engine  deep-learning  convnet  keras  machine-learning  python  cross-validation  sampling  machine-learning 

3
是否有适用于python的好的即用型语言模型?
我正在为一个应用程序制作原型,我需要一个语言模型来计算一些生成的句子的困惑度。 我可以随时使用经过训练的python语言模型吗?简单的东西 model = LanguageModel('en') p1 = model.perplexity('This is a well constructed sentence') p2 = model.perplexity('Bunny lamp robert junior pancake') assert p1 < p2 我看过一些框架,但找不到我想要的。我知道我可以使用类似: from nltk.model.ngram import NgramModel lm = NgramModel(3, brown.words(categories='news')) 这在Brown Corpus上使用了很好的图林概率分布,但是我正在一些大型数据集(例如1b单词数据集)上寻找精心设计的模型。我可以真正相信一般领域的结果(不仅是新闻)
11 python  nlp  language-model  r  statistics  linear-regression  machine-learning  classification  random-forest  xgboost  python  sampling  data-mining  orange  predictive-modeling  recommender-system  statistics  dimensionality-reduction  pca  machine-learning  python  deep-learning  keras  reinforcement-learning  neural-network  image-classification  r  dplyr  deep-learning  keras  tensorflow  lstm  dropout  machine-learning  sampling  categorical-data  data-imputation  machine-learning  deep-learning  machine-learning-model  dropout  deep-network  pandas  data-cleaning  data-science-model  aggregation  python  neural-network  reinforcement-learning  policy-gradients  r  dataframe  dataset  statistics  prediction  forecasting  r  k-means  python  scikit-learn  labels  python  orange  cloud-computing  machine-learning  neural-network  deep-learning  rnn  recurrent-neural-net  logistic-regression  missing-data  deep-learning  autoencoder  apache-hadoop  time-series  data  preprocessing  classification  predictive-modeling  time-series  machine-learning  python  feature-selection  autoencoder  deep-learning  keras  tensorflow  lstm  word-embeddings  predictive-modeling  prediction  machine-learning-model  machine-learning  classification  binary  theory  machine-learning  neural-network  time-series  lstm  rnn  neural-network  deep-learning  keras  tensorflow  convnet  computer-vision 

1
如何使用Keras预测时间范围的未来值?
我刚刚用Keras 建立了LSTM神经网络 import numpy as np import pandas as pd from sklearn import preprocessing from keras.layers.core import Dense, Dropout, Activation from keras.activations import linear from keras.layers.recurrent import LSTM from keras.models import Sequential from matplotlib import pyplot #read and prepare data from datafile data_file_name = "DailyDemand.csv" data_csv = pd.read_csv(data_file_name, delimiter = …

3
神经网络-查找最相似的图像
我正在使用Python,scikit-learn和keras。我有3000万个正面手表图像,如下所示: Watch_1,Watch_2,Watch_3。 我想编写一个程序,以接收实际手表的照片作为输入,该照片可能比上面的照片(背景色不同,光线更暗等)在不太理想的条件下拍摄,并且在3000种手表中找到最相似的手表。类似地,我的意思是,如果我输入一张带有薄花边的棕色圆形手表的照片作为输入,那么我期望将其制成为圆形,深色和薄花边的棕色手表的输出。 什么是最有效的机器学习算法? 例如,通过点击此链接,我想到了两种不同的解决方案: 1)使用CNN作为特征提取器,并参考输入图像比较每对图像的这些特征之间的距离。 2)在暹罗神经网络中使用两个CNN来比较图像。 这两个选项是此任务的最佳选择,还是您会提出其他建议? 您是否知道用于此任务的任何预训练神经网络(具有预定的超参数)? 我在StackOverflow上找到了一些有趣的帖子,但是它们已经很老了:Post_1,Post_2,Post_3。

1
如何在Keras中定义自定义效果指标?
我尝试根据以下方法在Keras(Tensorflow后端)中定义自定义指标功能(F1-Score): def f1_score(tags, predicted): tags = set(tags) predicted = set(predicted) tp = len(tags & predicted) fp = len(predicted) - tp fn = len(tags) - tp if tp>0: precision=float(tp)/(tp+fp) recall=float(tp)/(tp+fn) return 2*((precision*recall)/(precision+recall)) else: return 0 到目前为止,还不错,但是当我尝试将其应用于模型编译时: model1.compile(loss="binary_crossentropy", optimizer=Adam(), metrics=[f1_score]) 它给出了错误: TypeError Traceback (most recent call last) <ipython-input-85-4eca4def003f> in <module>() 5 model1.add(Dense(output_dim=10, …

1
使Keras在多机多核cpu系统上运行
我正在使用Keras的 LSTM(使用Theano背景)来开发Seq2Seq模型,并且我想并行化这些过程,因为即使很少的MB数据也需要数小时的训练。 显然,GPU在并行化方面要比CPU好得多。目前,我只能使用CPU。我可以访问16个CPU(每个内核2个线程X每个插槽4个内核X 2个插槽) 从Theano 的多核支持文档中,我设法使用了单个套接字的所有四个核。因此,基本上,CPU使用率为400%,使用了4个CPU,其余12个CPU仍未使用。我也如何利用它们。如果可行,也可以使用Tensorflow代替Theano背景。

1
使用RNN(LSTM)进行手势识别系统
我正在尝试构建用于对ASL(美国手语)手势进行分类的手势识别系统,因此我的输入应该是来自摄像机或视频文件的帧序列,然后它检测到该序列并将其映射到对应的帧课堂(睡眠,帮助,饮食,跑步等) 事情是我已经建立了一个类似的系统,但是对于静态图像(不包括运动),它仅在构建CNN是直截了当的任务时才用于翻译字母,这是有用的,因为手不会动太多,并且数据集结构也很容易管理,因为我正在使用keras,也许仍然打算这样做(每个文件夹都包含一组用于特定符号的图像,并且文件夹的名称是该符号的类名,例如:A,B,C ,..) 我的问题是,如何组织我的数据集以便能够将其输入到keras中的RNN中,以及应使用哪些特定函数有效地训练我的模型和任何必要的参数,有些人建议使用TimeDistributed类,但我不这样做对如何使用它有利于我有一个清晰的想法,并考虑到网络中每一层的输入形状。 同样考虑到我的数据集将由图像组成,我可能需要一个卷积层,将conv层组合到LSTM层中是怎么可行的(我的意思是代码)。 例如,我想象我的数据集是这样的 名为“运行”的文件夹包含3个文件夹1、2和3,每个文件夹对应于其序列中的框架 所以RUN_1将包含一些图像集的第一帧,RUN_2第二帧和Run_3第三,我的模型的目标是这个顺序输出字的培训运行。

2
为什么在我的GPU上进行培训需要这么长时间?
细节: GPU:GTX 1080 训练:约110万张属于10个类别的图像 验证:约15万张属于10类的图像 每个纪元时间:〜10小时 我已经设置了CUDA,cuDNN和Tensorflow(以及Tensorflow GPU)。 我不认为我的模型这么复杂,每个纪元需要10个小时。我什至检查了我的GPU是否是问题所在,但不是。 培训时间是由于完全连接的层吗? 我的模特: model = Sequential() model.add() model.add(Conv2D(64, (3, 3), padding="same", strides=2)) model.add(Activation('relu')) model.add(Dropout(0.25)) model.add(Conv2D(64, (3, 3), padding="same", strides=2)) model.add(Activation('relu')) model.add(Dropout(0.25)) model.add(Conv2D(32, (3, 3))) model.add(Activation('relu')) model.add(MaxPooling2D(pool_size=(3, 3), strides=2)) model.add(Flatten()) model.add(Dense(256)) model.add(Activation('relu')) model.add(Dense(4096)) model.add(Activation('relu')) model.add(Dense(10)) model.add(Activation('softmax')) model.summary() opt = keras.optimizers.rmsprop(lr=0.0001, decay=1e-6) model.compile(loss='categorical_crossentropy', optimizer=opt, …

2
如何检查死亡的鲁鲁神经元
背景:在使神经网络适应relu激活的同时,我发现有时预测变得接近恒定。我相信这是由于如本文所述在训练过程中神经元神经元死亡。(神经网络中的“垂死的ReLU”问题是什么?) 问题:我希望做的是在代码本身中实现检查,以检查神经元是否死亡。之后,如果需要,代码可以重新调整网络。 因此,检查死亡神经元的最佳条件是什么?目前,我正在考虑将预测中的低方差作为一个标准进行检查。 如果有帮助,即时通讯使用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.