相关疑难解决方法(0)

如何使用TFRecord数据集快速制作TensorFlow + Keras?

什么是如何将TensorFlow TFRecord与Keras模型和tf.session.run()一起使用,同时将数据集保存在具有队列运行程序的张量中?

以下是一个可行的代码段,但需要进行以下改进:

  • 使用Model API
  • 指定一个Input()
  • 从TFRecord加载数据集
  • 并行运行数据集(例如使用queuerunner)

这是片段,有几条TODO线表明需要什么:

from keras.models import Model
import tensorflow as tf
from keras import backend as K
from keras.layers import Dense, Input
from keras.objectives import categorical_crossentropy
from tensorflow.examples.tutorials.mnist import input_data

sess = tf.Session()
K.set_session(sess)

# Can this be done more efficiently than placeholders w/ TFRecords?
img = tf.placeholder(tf.float32, shape=(None, 784))
labels = tf.placeholder(tf.float32, shape=(None, 10))

# TODO: Use Input() 
x = Dense(128, activation='relu')(img)
x = Dense(128, activation='relu')(x)
preds = Dense(10, activation='softmax')(x)
# TODO: …
Run Code Online (Sandbox Code Playgroud)

machine-learning deep-learning keras tensorflow keras-layer

19
推荐指数
2
解决办法
1万
查看次数

不能采用未知等级的Shape的长度

我有一个神经网络,来自tf.data数据生成器和tf.keras模型,如下所示(简化版本 - 因为它太长了):

dataset = ...

tf.data.Dataset与所述对象next_x方法的调用get_nextx_train迭代器和用于next_y方法调用get_nexty_train迭代器.每个标签都是一个(1, 67)热门形式的数组.

图层:

input_tensor = tf.keras.layers.Input(shape=(240, 240, 3))  # dim of x
output = tf.keras.layers.Flatten()(input_tensor)
output= tf.keras.Dense(67, activation='softmax')(output)  # 67 is the number of classes
Run Code Online (Sandbox Code Playgroud)

模型:

model = tf.keras.models.Model(inputs=input_tensor, outputs=prediction)
model.compile(optimizer=tf.train.AdamOptimizer(), loss=tf.losses.softmax_cross_entropy, metrics=['accuracy'])
model.fit_generator(gen(dataset.next_x(), dataset.next_y()), steps_per_epochs=100)
Run Code Online (Sandbox Code Playgroud)

gen 定义如下:

def gen(x, y):
    while True:
        yield(x, y)
Run Code Online (Sandbox Code Playgroud)

我的问题是,当我尝试运行它时,我在model.fit部件中出错:

ValueError: Cannot take the length of …

python deep-learning keras tensorflow

7
推荐指数
1
解决办法
1123
查看次数