标签: deep-learning

如何使用Keras在TensorBoard中显示自定义图像?

我正在研究Keras中的分段问题,我希望在每个训练时代结束时显示分段结果.

我想要一些类似于Tensorflow:如何在Tensorboard中显示自定义图像(例如Matplotlib Plots),但使用Keras.我知道Keras有TensorBoard回调但看起来似乎有限.

我知道这会破坏Keras的后端抽象,但无论如何我对使用TensorFlow后端感兴趣.

是否有可能通过Keras + TensorFlow实现这一目标?

deep-learning keras tensorflow tensorboard

20
推荐指数
2
解决办法
9964
查看次数

什么是Keras的"指标"?

目前还不清楚是什么metrics(如下面的代码所示).他们究竟在评估什么?为什么我们需要在model?中定义它们?为什么我们可以在一个模型中拥有多个指标?更重要的是,这背后的机制是什么?任何科学参考也值得赞赏.

model.compile(loss='mean_squared_error',
              optimizer='sgd',
              metrics=['mae', 'acc'])
Run Code Online (Sandbox Code Playgroud)

python machine-learning neural-network deep-learning keras

20
推荐指数
2
解决办法
6097
查看次数

为什么我的Deep Q Network不能掌握简单的Gridworld(Tensorflow)?(如何评估Deep-Q-Net)

我尝试熟悉Q-learning和Deep Neural Networks,目前尝试使用Deep Reinforcement Learning实现Play Atari.

为了测试我的实现并玩它,我试着尝试一个简单的gridworld.我有一个N x N网格,从左上角开始,在右下角结束.可能的操作是:向左,向上,向右,向下.

即使我的实现与非常相似(希望它是一个好的),它似乎似乎没有学到任何东西.看看它需要完成的总步数(我猜平均值将达到500,网格大小为10x10,但也有非常低和高的值),它对我来说比其他任何东西都更随机.

我尝试使用和不使用卷积层并使用所有参数,但说实话,我不知道我的实现是否有问题或需要更长时间训练(我让它训练了很长时间)或者什么永远.但至少它接缝会聚,这里是一个训练课程的损失值的情节:

损失图像

那么这种情况下的问题是什么?

但也可能更重要的是我如何"调试"这个Deep-Q-Nets,在监督培训中有训练,测试和验证集,例如精确和召回,可以对它们进行评估.对于使用Deep-Q-Nets的无监督学习,我有哪些选择,以便下次我可以自己修复它?

最后这里是代码:

这是网络:

ACTIONS = 5

# Inputs
x = tf.placeholder('float', shape=[None, 10, 10, 4])
y = tf.placeholder('float', shape=[None])
a = tf.placeholder('float', shape=[None, ACTIONS])

# Layer 1 Conv1 - input
with tf.name_scope('Layer1'):
    W_conv1 = weight_variable([8,8,4,8])
    b_conv1 = bias_variable([8])    
    h_conv1 = tf.nn.relu(conv2d(x, W_conv1, 5)+b_conv1)

# Layer 2 Conv2 - hidden1 
with tf.name_scope('Layer2'):
    W_conv2 = weight_variable([2,2,8,8])
    b_conv2 = bias_variable([8])
    h_conv2 = tf.nn.relu(conv2d(h_conv1, W_conv2, 1)+b_conv2) …
Run Code Online (Sandbox Code Playgroud)

python neural-network q-learning deep-learning tensorflow

19
推荐指数
1
解决办法
2434
查看次数

为什么卷积1x1用于深度神经网络?

我在看InceptionV3(GoogLeNet)架构,无法理解为什么我们需要conv1x1层?

我知道卷积是如何工作的,但我看到补丁大小> 1的利润.

convolution neural-network deep-learning conv-neural-network tensorflow

19
推荐指数
2
解决办法
7571
查看次数

caffe中的"Python"层是什么?

Caffe有一个图层类型"Python".

例如,该层类型可以用作损耗层.
在其他情况下,它用作输入层.

这层类型是什么?
如何使用这一层?

python machine-learning neural-network deep-learning caffe

19
推荐指数
3
解决办法
6931
查看次数

如何使用TFRecord数据集快速制作TensorFlow + Keras?

什么是如何将TensorFlow TFRecord与Keras模型和tf.session.run()一起使用,同时将数据集保存在具有队列运行程序的张量中?

以下是一个可行的代码段,但需要进行以下改进:

  • 使用Model API
  • 指定一个Input()
  • 从TFRecord加载数据集
  • 并行运行数据集(例如使用queuerunner)

这是片段,有几条TODO线表明需要什么:

from keras.models import Model
import tensorflow as tf
from keras import backend as K
from keras.layers import Dense, Input
from keras.objectives import categorical_crossentropy
from tensorflow.examples.tutorials.mnist import input_data

sess = tf.Session()
K.set_session(sess)

# Can this be done more efficiently than placeholders w/ TFRecords?
img = tf.placeholder(tf.float32, shape=(None, 784))
labels = tf.placeholder(tf.float32, shape=(None, 10))

# TODO: Use Input() 
x = Dense(128, activation='relu')(img)
x = Dense(128, activation='relu')(x)
preds = Dense(10, activation='softmax')(x)
# TODO: …
Run Code Online (Sandbox Code Playgroud)

machine-learning deep-learning keras tensorflow keras-layer

19
推荐指数
2
解决办法
1万
查看次数

TensorFlow:如何处理图像分割中的空白标记数据?

我想知道如何使用TensorFlow处理图像分割中未标记的图像部分.例如,我的输入是高度*宽度*通道的图像.标签尺寸高度*宽度太大,每个像素都有一个标签.

图像的某些部分是注释的,其他部分则没有.我希望这些部分对梯度计算没有任何影响.此外,我对网络预测这个"无效"标签不感兴趣.

这有标签或功能吗?目前我正在使用tf.nn.sparse_softmax_cross_entropy_with_logits.

python neural-network image-segmentation deep-learning tensorflow

19
推荐指数
1
解决办法
1677
查看次数

Tensorflow中的右批量归一化功能是什么?

在tensorflow 1.4中,我发现了两个执行批量规范化的函数,它们看起来相同:

  1. tf.layers.batch_normalization(链接)
  2. tf.contrib.layers.batch_norm(链接)

我应该使用哪种功能?哪一个更稳定?

python neural-network deep-learning tensorflow batch-normalization

19
推荐指数
2
解决办法
1万
查看次数

在keras中保存最佳模型

我在keras中训练模型时使用以下代码

from keras.callbacks import EarlyStopping

model = Sequential()
model.add(Dense(100, activation='relu', input_shape = input_shape))
model.add(Dense(1))

model_2.compile(optimizer='adam', loss='mean_squared_error', metrics=['accuracy'])


model.fit(X, y, epochs=15, validation_split=0.4, callbacks=[early_stopping_monitor], verbose=False)

model.predict(X_test)
Run Code Online (Sandbox Code Playgroud)

但是最近我想得到保存最好的训练模型,因为我训练的数据在"高val_loss vs epochs"图中给出了很多高峰,我想从模型中使用最好的一个.

是否有任何方法或功能可以帮助解决这个问题?

neural-network deep-learning keras

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

tensorflow:您的输入数据用完

我正在研究 seq2seq keras/tensorflow 2.0 模型。每次用户输入内容时,我的模型都会完美地打印响应。但是在每个回复的最后一行我得到这个:

你:警告:tensorflow:你的输入数据用完了;中断训练。确保您的数据集或生成器至少可以生成steps_per_epoch * epochs批次(在本例中为 2 个批次)。在构建数据集时,您可能需要使用 repeat() 函数。

“你:”是我的最后一个输出,在用户应该输入新的东西之前。模型工作得很好,但我想没有错误是好的,但我不太明白这个错误。它说“中断训练”,但是我没有在训练任何东西,这个程序加载了一个已经训练好的模型。我想这就是错误没有停止程序的原因?

如果有帮助,我的模型如下所示:

intent_model = keras.Sequential([
    keras.layers.Dense(8, input_shape=[len(train_x[0])]),  # input layer
    keras.layers.Dense(8),  # hidden layer
    keras.layers.Dense(len(train_y[0]), activation="softmax"),  # output layer
])

intent_model.compile(optimizer="adam", loss="categorical_crossentropy", metrics=["accuracy"])
intent_model.fit(train_x, train_y, epochs=epochs)

test_loss, test_acc = intent_model.evaluate(train_x, train_y)
print("Tested Acc:", test_acc)

intent_model.save("models/intent_model.h5")
Run Code Online (Sandbox Code Playgroud)

python machine-learning deep-learning keras tensorflow

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