Tensorflow:培训JSON数据以生成类似的输出

Tensorflow:培训JSON数据以生成类似的输出,tensorflow,machine-learning,neural-network,Tensorflow,Machine Learning,Neural Network,假设有一个JSON数据包含用于生成以下10x5单元模式的指令,并且每个单元可以包含以下字符之一:\uuu0 x y z 还假设每个字符可以以各种颜色显示 模式1: _yx_0zzyxx _0__yz_0y_ x0_0x000yx _y__x000zx zyyzx_z_0y 模式2: xx0z00yy_z zzx_0000_x _yxy0y__yx _xz0z__0_y y__x0_0_y_ 模式3: yx0x_xz0_z xz_x0_xxxz _yy0x_0z00 zyy0__0zyx z_

假设有一个JSON数据包含用于生成以下10x5单元模式的指令,并且每个单元可以包含以下字符之一:
\uuu0 x y z

还假设每个字符可以以各种颜色显示

模式1:

_yx_0zzyxx
_0__yz_0y_
x0_0x000yx
_y__x000zx
zyyzx_z_0y
模式2:

xx0z00yy_z
zzx_0000_x
_yxy0y__yx
_xz0z__0_y
y__x0_0_y_
模式3:

yx0x_xz0_z
xz_x0_xxxz
_yy0x_0z00
zyy0__0zyx
z_xy0_0xz0
这些都是随机生成的,都是黑色的,但假设它们是根据一些规则设计的,并且是彩色的

第一个模式的JSON如下所示:

{
  width: 10,
  height: 5,
  cells: [
    {
      value: '_',
      color: 'red'
    },
    {
      value: 'y',
      color: 'blue'
    }, ...
  ]
}
如果想要对这些数据进行培训,以生成新的相似模式(同样,假设这些模式不是随机生成的),建议的方法是什么:

  • 读取中的数据(我可以想象将JSON放入一个
    Example
    protobuf,使用tf.parse_示例将缓冲区序列化为字符串,然后将其写入TFRecord文件)
  • 关于这些数据的培训
  • 基于训练模型生成新模式
  • 为生成的图案提供种子数据,例如,第一个单元格是带有蓝色的字符“x”
我想通过艺术/照片和音乐/MIDI数据实现类似于我在风格转换中看到的东西(见:谷歌品红)。在这些情况下,模型将接受一组独特的艺术品或旋律风格的训练,并提供照片或初级旋律形式的种子,以生成与训练中使用的数据类似的内容


谢谢!

我不喜欢将数据集预处理成新的表单,这会使以后的更改变得困难,并减缓未来的开发,在我看来,这就像是技术债务

我的方法是保持JSON的原样,编写一些简单的python代码(具体来说是一个生成器,它意味着您使用
yield
而不是
return
语句)来读取JSON文件并按顺序输出示例

然后将tensorflow数据集输入管道与
Dataset.from_generator(…)
一起使用,从输入函数获取数据


数据集管道提供了管理您想要应用的各种转换所需的一切,您可以在一个很好的模块化、可测试的框架中轻松地将函数缓冲、洗牌、批处理、预取和映射到您的数据上,该框架自然地输入到您的tensorflow模型中。

我不喜欢将数据集预处理为新的形式,我它使以后的改变变得困难,减缓了未来的发展,在我看来,这就像是技术债务

我的方法是保持JSON的原样,编写一些简单的python代码(具体来说是一个生成器,它意味着您使用
yield
而不是
return
语句)来读取JSON文件并按顺序输出示例

然后将tensorflow数据集输入管道与
Dataset.from_generator(…)
一起使用,从输入函数获取数据

数据集管道提供了管理要应用的各种转换所需的一切,您可以在一个漂亮的模块化、可测试的框架中轻松地将函数缓冲、洗牌、批处理、预取和映射到数据上,该框架自然地输入到tensorflow模型中