Questions tagged «keras»

适用于Python和R的开源高级神经网络库。能够使用TensorFlow或Theano作为后端。

4
神经网络中的批量大小是多少?
我正在使用Python Keras package神经网络。这是链接。是batch_size等于测试样品的数量?从维基百科,我们可以获得以下信息: 但是,在其他情况下,求和梯度可能需要对所有求和函数的梯度进行昂贵的求值。当训练集庞大且不存在简单公式时,评估梯度之和变得非常昂贵,因为评估梯度需要评估所有求和函数的梯度。为了节省每次迭代的计算成本,随机梯度下降在每一步都采样了求和函数的子集。这在大规模机器学习问题的情况下非常有效。 以上信息描述的是测试数据?这与batch_sizekeras中相同(每个梯度更新的样本数)吗?

2
Keras的“嵌入”层如何工作?
需要了解Keras库中“嵌入”层的工作方式。我在Python中执行以下代码 import numpy as np from keras.models import Sequential from keras.layers import Embedding model = Sequential() model.add(Embedding(5, 2, input_length=5)) input_array = np.random.randint(5, size=(1, 5)) model.compile('rmsprop', 'mse') output_array = model.predict(input_array) 它给出以下输出 input_array = [[4 1 3 3 3]] output_array = [[[ 0.03126476 0.00527241] [-0.02369716 -0.02856163] [ 0.0055749 0.01492429] [ 0.0055749 0.01492429] …

5
神经网络中多类别,多标签分类任务的损失函数是什么?
我正在训练一个神经网络,以将一组对象分类为n类。每个对象可以同时属于多个类(多类,多标签)。 我读到,对于多类问题,通常建议使用softmax和分类交叉熵代替mse作为损失函数,并且我或多或少地了解了为什么。 对于我的多标签问题,使用softmax当然是没有意义的,因为每种类别的概率都应该彼此独立。因此,我的最后一层就是S型单元,将其输入压缩到每个类的概率范围为0..1。 现在我不确定应该使用什么损失函数。观察分类交叉熵的定义,我认为它不适用于此问题,因为它将仅考虑应为1的神经元输出,而忽略其他神经元的输出。 二进制交叉熵听起来更合适,但是我只看到它曾经针对单个输出神经元的二进制分类问题提到过。 我正在使用python和keras进行培训,以防万一。

5
如何使我的神经网络更好地预测正弦波?
在这里,看看: 您可以确切地看到训练数据的结束位置。训练数据从变为。1−1-1个-111个1 我使用Keras和具有tanh激活功能的1-100-100-2密集网络。我根据p和q这两个值计算出的结果为p / q。这样,我仅使用小于1的值就可以实现任何大小的数字。 请注意,我仍然是该领域的初学者,所以请放轻松。

3
使用Keras了解LSTM中的input_shape参数
我正在尝试使用Keras文档中描述的名为“用于序列分类的堆叠式LSTM” 的示例(请参见下面的代码),并且无法input_shape在我的数据上下文中找出参数。 我输入了一个由25个可能的字符组成的序列矩阵,以整数编码为最大长度为31的填充序列。因此,my x_train具有形状(1085420, 31)含义(n_observations, sequence_length)。 from keras.models import Sequential from keras.layers import LSTM, Dense import numpy as np data_dim = 16 timesteps = 8 num_classes = 10 # expected input data shape: (batch_size, timesteps, data_dim) model = Sequential() model.add(LSTM(32, return_sequences=True, input_shape=(timesteps, data_dim))) # returns a sequence of vectors of …
20 lstm  keras  shape  dimensions 

4
Conv1D和Conv2D有什么区别?
我正在研究keras卷积文档,发现了两种类型的卷积Conv1D和Conv2D。我做了一些网页搜索,这就是我对Conv1D和Conv2D的了解;Conv1D用于序列,Conv2D用于图像。 我一直以为卷积神经网络仅以这种方式用于图像和可视化的CNN 图像被认为是一个大矩阵,然后滤镜将在该矩阵上滑动并计算点积。我相信keras所说的是Conv2D。如果Conv2D以这种方式工作,那么Conv1D的机制是什么,我们如何想象其机制?

4
是否可以将可变大小的图像作为输入到卷积神经网络?
我们能否将尺寸可变的图像作为卷积神经网络的输入以进行目标检测?如果可能,我们该怎么做? 但是,如果我们尝试裁切图像,则会丢失图像的某些部分,如果尝试调整大小,则会丢失图像的清晰度。如果将图像清晰度作为主要考虑因素,这是否意味着使用固有的网络属性是最好的?

1
为什么单个ReLU无法学习ReLU?
作为我神经网络甚至无法学习欧几里德距离的后续操作,我进一步简化了方法,并尝试将单个ReLU(具有随机权重)训练为单个ReLU。这是目前最简单的网络,但有一半时间未能融合。 如果初始猜测与目标的方位相同,则它会快速学习并收敛到正确的权重1: 如果最初的猜测是“向后”,则它的权重为零,并且永远不会经过它到达较低损失的区域: 我不明白为什么。梯度下降不应该轻易遵循损耗曲线达到全局最小值吗? 示例代码: from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense, ReLU from tensorflow import keras import numpy as np import matplotlib.pyplot as plt batch = 1000 def tests(): while True: test = np.random.randn(batch) # Generate ReLU test case X = test Y = test.copy() Y[Y < 0] …


3
CIFAR-10不能达到60%以上的精度,带有Tensorflow后端的Keras [关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为交叉验证的主题。 去年关闭。 在CIFAR-10数据集上经过15个纪元后的训练似乎使验证损失不再减少,大约为1.4(验证准确度为60%)。我重新整理了训练集,将其除以255,然后导入为float32。我已经尝试了许多体系结构,在Conv2D层中有或没有辍学,似乎没有任何效果。相同的体系结构在MNIST的测试集上实现了99.7%的准确性。请查看以下架构: (注意:我曾尝试增加Adam优化器的辍学率和提高/降低学习率,以防止过度拟合,所有这些操作都是为了防止过度拟合,但是现在训练和测试集的准确性都低至60%左右)。 with tf.device('/gpu:0'): tf.placeholder(tf.float32, shape=(None, 20, 64)) #placeholder initialized (pick /cpu:0 or /gpu:0) seed = 6 np.random.seed(seed) modelnn = Sequential() neurons = x_train_reduced.shape[1:] modelnn.add(Convolution2D(32, 3, 3, input_shape=neurons, activation='relu', border_mode='same')) modelnn.add(Convolution2D(32, 3, 3, activation='relu', border_mode='same')) modelnn.add(MaxPooling2D(pool_size=(2, 2))) modelnn.add(Dropout(0.2)) modelnn.add(Convolution2D(64, 3, 3, activation='relu', border_mode='same')) modelnn.add(Convolution2D(64, 3, 3, …

1
我的神经网络甚至无法学习欧几里得距离
因此,我试图自学神经网络(用于回归应用,而不是对猫的图片进行分类)。 我的第一个实验是训练网络以实现FIR滤波器和离散傅立叶变换(在“之前”和“之后”信号上进行训练),因为这两个都是线性操作,可以由没有激活功能的单层实现。 两者都很好。 因此,我想看看是否可以添加abs()并使其学习幅度谱。首先,我考虑了在隐藏层中需要多少个节点,并意识到3个ReLU足以满足的粗略近似abs(x+jy) = sqrt(x² + y²),因此我自己对孤复数(2个输入→3个ReLU节点隐藏层→1个)进行了该操作的测试。输出)。有时它起作用: 但是在我尝试的大多数时候,它陷入了局部最小值,无法找到正确的形状: 我已经在Keras中尝试了所有优化器和ReLU变体,但是它们并没有太大的区别。我还能做些其他事情来使像这样的简单网络可靠地融合吗?还是我只是以错误的态度来解决这个问题,而您应该在问题上抛出不必要的更多节点,如果其中一半死亡,这没什么大不了的?
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.