我想在我拥有的一些图像数据上实现一个深刻的梦想。我决定尝试一下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不能用于深梦的结论公平吗?有办法破解吗?你知道吗
看看https://github.com/Microsoft/CNTK/blob/master/Tutorials/CNTK_205_Artistic_Style_Transfer.ipynb
您可以通过在参数中指定need\u gradient=True来创建一个可学习的输入变量。你知道吗
谢谢,
埃马德
相关问题 更多 >
编程相关推荐