使用估计器API和TFRecords数据集扩充Tensorflow中的数据

使用估计器API和TFRecords数据集扩充Tensorflow中的数据,tensorflow,keras,Tensorflow,Keras,我正在使用Tensorflow的1.3估计器API来执行一些图像分类。因为我有大量的数据,所以我尝试了TF记录。保存了该文件,并可以使用估计器模型输入_fn中的解析器函数将示例读取到数据集。到目前为止还不错 问题是当我想做一些图像增强时(在本例中是旋转和剪切) 1) 我试着使用tf.contrib.keras.preprocessing.image.random\u shear等等。事实证明Keras不喜欢TF形状(“维度”)的格式,我不能将其转换为列表,因为它的参数是轴索引,而不是实际值 2)

我正在使用Tensorflow的1.3估计器API来执行一些图像分类。因为我有大量的数据,所以我尝试了TF记录。保存了该文件,并可以使用估计器模型输入_fn中的解析器函数将示例读取到数据集。到目前为止还不错

问题是当我想做一些图像增强时(在本例中是旋转和剪切)

1) 我试着使用
tf.contrib.keras.preprocessing.image.random\u shear
等等。事实证明Keras不喜欢TF形状(“维度”)的格式,我不能将其转换为列表,因为它的参数是轴索引,而不是实际值

2) 然后我尝试使用
tf.contrib.image.rotate
tf.contrib.image.transform
在我选择的范围内使用随机值。这一次我得到一个错误
NotFoundError:Op type未在MYPC上运行的二进制文件中注册'imageprojectvetransform'。确保在该进程中运行的二进制文件中注册了Op和内核。
这是一个未决问题()。目前我无法离开Windows,因此我对可能的替代方案非常感兴趣

3) 已搜索读取TFRecords并将其转换为numpy数组并使用其他工具进行扩充的方法,但在无法访问会话的输入中找不到方法


谢谢

您是否尝试过使用下面问题答案中的函数?

谢谢您的回答。我不能在输入函数中使用eval来在估算器中使用,因为我没有访问会话的权限,但我在另一个答案中使用了轮换实现,它可以工作。在我提到的更正Windows op注册表的问题中也看到了提交,因此它也应该在分布式二进制文件中解决。很抱歉,我还不能接受这个答案,因为它仍然缺少常规转换(或剪切特定函数)。不用担心(接受答案)。我在TF1.3.0上检查了自己,并惊讶地发现该op在Linux下可用,但在Windows下不可用。