标签: keras

了解Keras LSTM

我试图调和我对LSTM的理解,并在克里斯托弗·奥拉在克拉拉斯实施的这篇文章中指出.我正在关注Jason Brownlee为Keras教程撰写博客.我主要困惑的是,

  1. 将数据系列重塑为[samples, time steps, features]和,
  2. 有状态的LSTM

让我们参考下面粘贴的代码集中讨论上述两个问题:

# reshape into X=t and Y=t+1
look_back = 3
trainX, trainY = create_dataset(train, look_back)
testX, testY = create_dataset(test, look_back)

# reshape input to be [samples, time steps, features]
trainX = numpy.reshape(trainX, (trainX.shape[0], look_back, 1))
testX = numpy.reshape(testX, (testX.shape[0], look_back, 1))
########################
# The IMPORTANT BIT
##########################
# create and fit the LSTM network
batch_size = 1
model = Sequential()
model.add(LSTM(4, …
Run Code Online (Sandbox Code Playgroud)

python deep-learning lstm keras

259
推荐指数
4
解决办法
4万
查看次数

Keras输入说明:input_shape,units,batch_size,dim等

对于任何Keras层(Layer类),可有人解释如何理解之间的区别input_shape,units,dim,等?

例如,doc说明了units指定图层的输出形状.

在神经网络的图像下面hidden layer1有4个单位.这是否直接转换为对象的units属性Layer?或者units在Keras中,隐藏层中每个权重的形状是否等于单位数?

简而言之,如何理解/可视化模型的属性 - 特别是图层 - 下面的图像? 在此输入图像描述

neural-network deep-learning keras keras-layer tensor

191
推荐指数
2
解决办法
9万
查看次数

我在哪里调用Keras中的BatchNormalization函数?

如果我想在Keras中使用BatchNormalization函数,那么我是否只需要在开头调用它一次?

我为它阅读了这个文档:http://keras.io/layers/normalization/

我不知道我应该把它称之为什么.以下是我的代码试图使用它:

model = Sequential()
keras.layers.normalization.BatchNormalization(epsilon=1e-06, mode=0, momentum=0.9, weights=None)
model.add(Dense(64, input_dim=14, init='uniform'))
model.add(Activation('tanh'))
model.add(Dropout(0.5))
model.add(Dense(64, init='uniform'))
model.add(Activation('tanh'))
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)
model.fit(X_train, y_train, nb_epoch=20, batch_size=16, show_accuracy=True, validation_split=0.2, verbose = 2)
Run Code Online (Sandbox Code Playgroud)

我问,因为如果我运行包含批量规范化的第二行的代码,如果我运行没有第二行的代码,我得到类似的输出.所以要么我没有在正确的位置调用该功能,要么我认为它没有那么大的差别.

python neural-network keras data-science batch-normalization

144
推荐指数
7
解决办法
14万
查看次数

Keras binary_crossentropy vs categorical_crossentropy性能?

我正在尝试培训CNN按主题对文本进行分类.当我使用binary_crossentropy时,我得到~80%acc,而categorical_crossentrop我得到~50%acc.

我不明白为什么会这样.这是一个多类问题,这是否意味着我必须使用分类,二进制结果是没有意义的?

model.add(embedding_layer)
model.add(Dropout(0.25))
# convolution layers
model.add(Conv1D(nb_filter=32,
                    filter_length=4,
                    border_mode='valid',
                    activation='relu'))
model.add(MaxPooling1D(pool_length=2))
# dense layers
model.add(Flatten())
model.add(Dense(256))
model.add(Dropout(0.25))
model.add(Activation('relu'))
# output layer
model.add(Dense(len(class_id_index)))
model.add(Activation('softmax'))
Run Code Online (Sandbox Code Playgroud)

然后

model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
Run Code Online (Sandbox Code Playgroud)

要么

model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
Run Code Online (Sandbox Code Playgroud)

machine-learning neural-network deep-learning conv-neural-network keras

130
推荐指数
7
解决办法
14万
查看次数

如何使用Keras的Tensorboard回调?

我用Keras建立了一个神经网络.我会通过Tensorboard可视化其数据,因此我使用了:

keras.callbacks.TensorBoard(log_dir='/Graph', histogram_freq=0,
                            write_graph=True, write_images=True)
Run Code Online (Sandbox Code Playgroud)

keras.io中所述.当我运行回调时,我得到了<keras.callbacks.TensorBoard at 0x7f9abb3898>,但是我的文件夹"Graph"中没有任何文件.我如何使用这个回调有什么问题吗?

keras tensorboard

128
推荐指数
6
解决办法
10万
查看次数

Keras,如何获得每一层的输出?

我已经使用CNN训练了二进制分类模型,这是我的代码

model = Sequential()
model.add(Convolution2D(nb_filters, kernel_size[0], kernel_size[1],
                        border_mode='valid',
                        input_shape=input_shape))
model.add(Activation('relu'))
model.add(Convolution2D(nb_filters, kernel_size[0], kernel_size[1]))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=pool_size))
# (16, 16, 32)
model.add(Convolution2D(nb_filters*2, kernel_size[0], kernel_size[1]))
model.add(Activation('relu'))
model.add(Convolution2D(nb_filters*2, kernel_size[0], kernel_size[1]))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=pool_size))
# (8, 8, 64) = (2048)
model.add(Flatten())
model.add(Dense(1024))
model.add(Activation('relu'))
model.add(Dropout(0.5))
model.add(Dense(2))  # define a binary classification problem
model.add(Activation('softmax'))

model.compile(loss='categorical_crossentropy',
              optimizer='adadelta',
              metrics=['accuracy'])
model.fit(x_train, y_train,
          batch_size=batch_size,
          nb_epoch=nb_epoch,
          verbose=1,
          validation_data=(x_test, y_test))
Run Code Online (Sandbox Code Playgroud)

在这里,我想像TensorFlow一样获得每一层的输出,我该怎么做?

python deep-learning keras tensorflow

115
推荐指数
9
解决办法
12万
查看次数

无法在仅 tensorflow CPU 安装上加载动态库“cudart64_101.dll”

我刚刚通过安装了最新版本的 Tensorflow pip install tensorflow,每当我运行程序时,我都会收到日志消息:

W tensorflow/stream_executor/platform/default/dso_loader.cc:55] 无法加载动态库“cudart64_101.dll”;dlerror: 找不到 cudart64_101.dll

这很糟糕吗?如何修复错误?

python python-3.x keras tensorflow tensorflow2.0

113
推荐指数
8
解决办法
25万
查看次数

为什么TensorFlow 2比TensorFlow 1慢得多?

许多用户都将其作为切换到Pytorch的原因,但是我还没有找到牺牲/最渴望的实用质量,速度和执行力的理由/解释。

以下是代码基准测试性能,即TF1与TF2的对比-TF1的运行速度提高了47%至276%

我的问题是:在图形或硬件级别上,什么导致如此显着的下降?


寻找详细的答案-已经熟悉广泛的概念。相关的Git

规格:CUDA 10.0.130,cuDNN 7.4.2,Python 3.7.4,Windows 10,GTX 1070


基准测试结果


UPDATE:禁用每下面的代码不会急于执行没有帮助。但是,该行为是不一致的:有时以图形方式运行有很大帮助,而其他时候其运行速度相对于Eager

由于TF开发人员没有出现在任何地方,因此我将自己进行调查-可以跟踪相关的Github问题的进展。

更新2:分享大量实验结果,并附有解释;应该在今天完成。


基准代码

# use tensorflow.keras... to benchmark tf.keras; used GPU for all above benchmarks
from keras.layers import Input, Dense, LSTM, Bidirectional, Conv1D
from keras.layers import Flatten, Dropout
from keras.models import Model
from keras.optimizers import Adam
import keras.backend as K
import numpy as np
from time import time

batch_shape = (32, 400, 16) …
Run Code Online (Sandbox Code Playgroud)

python performance-testing keras tensorflow tensorflow2.0

94
推荐指数
2
解决办法
4140
查看次数

我可以在gpu上运行Keras模型吗?

我正在运行Keras模型,提交截止日期为36小时,如果我在cpu上训练我的模型需要大约50个小时,有没有办法在gpu上运行Keras?

我正在使用Tensorflow后端并在我的Jupyter笔记本上运行它,没有安装anaconda.

python jupyter keras tensorflow

93
推荐指数
3
解决办法
15万
查看次数

什么是嵌入Keras?

Keras文档不清楚这实际上是什么.据我所知,我们可以使用它将输入要素空间压缩为较小的一个.但是从神经设计的角度来看,这是怎么做到的?它是自动编码器,RBM吗?

keras

89
推荐指数
3
解决办法
3万
查看次数