【问题标题】:Am I correct in concluding that it is not possible to implement a 'deep dream' in cntk?我得出的结论是不可能在cntk中实现“深度梦想”是否正确?
【发布时间】:2017-12-30 10:28:58
【问题描述】:

我想在我拥有的一些图像数据上实现一个深刻的梦想。我决定试一试cntk,开始使用MNIST手写数据进行开发。

通常,在训练神经网络时,您有一些固定的输入图像集,并且需要学习一些可变权重。 Deep dreaming 有点像翻转这些,你有一个可变的图像要学习,给定网络中的一些固定权重。

所以我训练了一个网络,以使用卷积网络非常一致地识别图像。现在我想让它想象一些图像,所以我需要对可变输入图像进行卷积。显然cntk不允许这样做。以下代码演示了我遇到的错误。

def doConstantConv(inputX, W, b, redRank):
    kernel = C.constant(value = W)
    bias = C.constant(value = b)
    conv = C.convolution(kernel, inputX, strides = (2,2), reduction_rank = redRank) + bias
    return C.relu(conv)

W1 = np.reshape(np.arange(200.0, dtype = np.float32), (8,1,5,5))
b1 = np.reshape(np.arange(8.0, dtype = np.float32), (8,1,1))

someInput = C.parameter((1,28,28))
layer1 = doConstantConv(someInput, W1, b1, 1)

我得到的错误是“卷积当前需要主操作数具有动态轴”。但据我所知,可学习的参数不能有动态轴。那没有意义,不是吗?

那么得出cntk不能用于深度梦境的结论是否公平?有办法破解吗?

【问题讨论】:

    标签: python deep-learning cntk


    【解决方案1】:

    看看https://github.com/Microsoft/CNTK/blob/master/Tutorials/CNTK_205_Artistic_Style_Transfer.ipynb

    您可以通过在其参数中指定 need_gradient=True 来创建可学习的输入变量。

    谢谢,
    埃马德

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-14
      • 1970-01-01
      • 1970-01-01
      • 2021-12-28
      • 1970-01-01
      • 2014-02-16
      • 1970-01-01
      相关资源
      最近更新 更多