我遵循本 教程并使用Github 页面中的 ipynb notebook 在 Google Colaboratory 中生成 deepdream 图像。本教程使用 Inception5h 网络。该模型中的 12 层通常用于生成图像。
每层由大约 500 个单独的特征组成,它们识别不同的模式。可以选择层中的特定特征,这会产生不同的结果。我已经在第 6 层“mixed4a:0”中生成了每个特征的图像。我现在要做的是混合这些功能。
像这样选择特定层:
layer_tensor = model.layer_tensors[5]
# selects layer 6 out of 12
我可以选择一系列这样的功能:
layer_tensor = model.layer_tensors[5][:,:,:,0:3]
# selects feature 0 to 2 from layer 6
我正在尝试做的是选择特定功能而不是一系列功能。我已经尝试了一些显然不起作用的东西。
layer_tensor = model.layer_tensors[5][:,:,:,0,2,4]
layer_tensor = model.layer_tensors[5][:,:,:,0:2:4]
layer_tensor = model.layer_tensors[5][:,:,:,[0,2,4]]
layer_tensor = model.layer_tensors[5][:,:,:,[0:2:4]]
layer_tensor = model.layer_tensors[5][:,:,:,(0,2,4)]
为了弄清楚“layer_tensor”是什么类型的对象/事物/数据结构,我尝试使用不同的参数打印它:
layer_tensor = model.layer_tensors[5]
# prints Tensor("mixed4a:0", shape=(?, ?, ?, 508), dtype=float32, device=/device:CPU:0)
# "mixed4a:0" is the layer name. 508 in 'shape' is the number of features in the layer
layer_tensor = model.layer_tensors[5][:,:,:,0:100]
# prints: Tensor("strided_slice_127:0", shape=(?, ?, ?, 100), dtype=float32)
layer_tensor = model.layer_tensors[5][:,:,:,0]
# prints: Tensor("strided_slice_128:0", shape=(?, ?, ?), dtype=float32)
一般来说,我是 Tensorflow 和神经网络的新手。有谁知道如何选择不同的功能,而不仅仅是一系列功能?提前致谢!
要运行代码,请将“DeepDream_using_tensorflow.ipynb”文件加载到 Google Colaboratory。选择带有 GPU 后端的 Python3 运行时。将文件“download.py”和“inception5h.py”上传到运行时,它应该可以正常工作。