Questions tagged «neural-network»

网络结构受到生物神经元(脑细胞)简化模型的启发。神经网络通过有监督和无监督的技术进行训练以“学习”,并可用于解决优化问题,逼近问题,分类模式及其组合。

5
tf.nn.conv2d在tensorflow中做什么?
我在tf.nn.conv2d 这里查看 tensorflow的文档。但是我不明白它的作用或试图达到的目的。它在文档上说, #1:将滤镜展平为具有形状的二维矩阵 [filter_height * filter_width * in_channels, output_channels]。 现在那是做什么的?是逐元素乘法还是仅矩阵乘法?我也无法理解文档中提到的其他两点。我在下面写了它们: #2:从输入张量中提取图像补丁,以形成形状的虚拟张量 [batch, out_height, out_width, filter_height * filter_width * in_channels]。 #3:对于每个色块,将滤波器矩阵和图像色块向量右乘。 如果有人可以举一个例子,也许有一段代码(极其有用)并解释那里发生了什么以及为什么这样的操作,那将真的很有帮助。 我尝试编码一小部分并打印出操作的形状。不过,我还是不明白。 我尝试过这样的事情: op = tf.shape(tf.nn.conv2d(tf.random_normal([1,10,10,10]), tf.random_normal([2,10,10,10]), strides=[1, 2, 2, 1], padding='SAME')) with tf.Session() as sess: result = sess.run(op) print(result) 我了解卷积神经网络的点点滴滴。我在这里学习过。但是在tensorflow上的实现不是我期望的。因此它提出了一个问题。 编辑:所以,我实现了一个简单得多的代码。但是我不知道发生了什么。我的意思是结果是这样的。如果有人能告诉我是什么过程产生此输出的,那将非常有帮助。 input = tf.Variable(tf.random_normal([1,2,2,1])) filter = tf.Variable(tf.random_normal([1,1,1,1])) op …

9
批量归一化和辍学订购?
最初的问题是关于TensorFlow实现的。但是,答案是针对一般的实现。这个通用答案也是TensorFlow的正确答案。 在TensorFlow中使用批量归一化和辍学时(特别是使用contrib.layers),我需要担心订购吗? 如果我在退出后立即使用批处理规范化,则可能会出现问题。例如,如果批量归一化训练中的偏移量训练输出的比例尺数字较大,但是将相同的偏移量应用到较小的比例尺数字(由于补偿了更多的输出),而在测试过程中没有丢失,则轮班可能关闭。TensorFlow批处理规范化层会自动对此进行补偿吗?还是由于某种原因我不会想念这件事吗? 另外,将两者一起使用时还有其他陷阱吗?例如,假设我使用他们以正确的顺序在问候上述(假设有是一个正确的顺序),可以存在与使用分批正常化和漏失在多个连续层烦恼?我没有立即看到问题,但是我可能会丢失一些东西。 非常感谢! 更新: 实验测试似乎表明排序确实很重要。我在相同的网络上运行了两次,但批次标准和退出均相反。当辍学在批处理规范之前时,验证损失似乎会随着培训损失的减少而增加。在另一种情况下,它们都下降了。但就我而言,运动缓慢,因此在接受更多培训后情况可能会发生变化,这只是一次测试。一个更加明确和明智的答案仍然会受到赞赏。

4
Tensorflow大步向前
我想了解的进步在tf.nn.avg_pool,tf.nn.max_pool,tf.nn.conv2d说法。 该文件反复说 步幅:长度大于等于4的整数的列表。输入张量每个维度的滑动窗口的步幅。 我的问题是: 4个以上的整数分别代表什么? 对于卷积网络,为什么必须要有stride [0] = strides [3] = 1? 在此示例中,我们看到了tf.reshape(_X,shape=[-1, 28, 28, 1])。为什么是-1? 遗憾的是,文档中使用-1进行重塑的示例并不能很好地解释这种情况。


3
sparse_softmax_cross_entropy_with_logits和softmax_cross_entropy_with_logits有什么区别?
我最近遇到了tf.nn.sparse_softmax_cross_entropy_with_logits,但我不知道与tf.nn.softmax_cross_entropy_with_logits有什么区别。 是唯一的区别在于训练矢量y必须是独热编码使用时sparse_softmax_cross_entropy_with_logits? 阅读API,与相比,我找不到其他任何区别softmax_cross_entropy_with_logits。但是,为什么我们需要额外的功能呢? 如果提供了一键编码的训练数据/矢量,softmax_cross_entropy_with_logits结果应该不会与相同sparse_softmax_cross_entropy_with_logits?


16
什么是学习人工神经网络的良好资源?[关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow 的主题。 6年前关闭。 改善这个问题 我对人工神经网络真的很感兴趣,但是我正在寻找一个起点。 那里有什么资源,什么是好的入门项目?

2
Keras中的多对一和多对多LSTM示例
我尝试了解LSTM以及如何使用Keras构建它们。我发现,主要有4种模式可以运行RNN(图中的4种正确模式) 图片来源:Andrej Karpathy 现在,我想知道在Keras中,每个代码的简约代码段看起来如何。所以像 model = Sequential() model.add(LSTM(128, input_shape=(timesteps, data_dim))) model.add(Dense(1)) 对于这4个任务中的每一个,也许需要一点解释。

5
“ Flatten”在Keras中的作用是什么?
我试图了解该Flatten功能在Keras中的作用。下面是我的代码,它是一个简单的两层网络。它接收形状为(3,2)的二维数据,并输出形状为(1,4)的一维数据: model = Sequential() model.add(Dense(16, input_shape=(3, 2))) model.add(Activation('relu')) model.add(Flatten()) model.add(Dense(4)) model.compile(loss='mean_squared_error', optimizer='SGD') x = np.array([[[1, 2], [3, 4], [5, 6]]]) y = model.predict(x) print y.shape 打印出y形状为(1、4)的图形。但是,如果我删除该Flatten行,则会打印出y形状为(1、3、4)的行。 我不明白 根据我对神经网络的理解,该model.add(Dense(16, input_shape=(3, 2)))函数正在创建一个具有16个节点的隐藏的全连接层。这些节点中的每个都连接到3x2输入元素中的每个。因此,该第一层输出处的16个节点已经“平坦”。因此,第一层的输出形状应为(1、16)。然后,第二层将此作为输入,并输出形状为(1、4)的数据。 因此,如果第一层的输出已经“平坦”并且形状为(1,16),为什么还要进一步使其平坦?


9
为什么将神经网络的权重初始化为随机数?
我正在尝试从头开始构建神经网络。在所有AI文献中都达成共识,即权重应初始化为随机数,以使网络收敛更快。 但是为什么神经网络的初始权重被初始化为随机数呢? 我在某处读过,这样做是为了“打破对称性”,这使神经网络学习得更快。如何打破对称性使其学习更快? 将权重初始化为0会不是一个更好的主意?这样,权重就能更快地找到其值(正负)。 除了希望权重在初始化时会接近最佳值之外,还有其他一些潜在的基本原理吗?


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 …

10
如何在TensorFlow中添加正则化?
我在使用TensorFlow实现的许多可用神经网络代码中发现,正则化项通常是通过在损耗值上手动添加一个附加项来实现的。 我的问题是: 是否有比手动进行更优雅或推荐的正规化方法? 我也发现get_variable有一个论点regularizer。应该如何使用?根据我的观察,如果我们向其传递正则化器(例如tf.contrib.layers.l2_regularizer,将计算表示正则化项的张量并将其添加到名为的图集合中tf.GraphKeys.REGULARIZATOIN_LOSSES,该集合是否会被TensorFlow自动使用(例如,训练时由优化器使用)?期望我自己使用该收藏集吗?

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, …

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.