当我想用于tf.train.string_input_producer
加载2个时期的数据时,我使用了
filename_queue = tf.train.string_input_producer(filenames=['data.csv'], num_epochs=2, shuffle=True)
col1_batch, col2_batch, col3_batch = tf.train.shuffle_batch([col1, col2, col3], batch_size=batch_size, capacity=capacity,\min_after_dequeue=min_after_dequeue, allow_smaller_final_batch=True)
但是后来我发现这个操作没有产生我想要的。
它只能产生data.csv
2次每个样本,但是生成的顺序不清楚。例如,在3行数据data.csv
[[1]
[2]
[3]]
它会产生(每个样本仅出现2次,但顺序是可选的)
[1]
[1]
[3]
[2]
[2]
[3]
但是我想要的是(每个纪元都是分开的,每个纪元都洗牌)
(epoch 1:)
[1]
[2]
[3]
(epoch 2:)
[1]
[3]
[2]
此外,如何知道何时完成1个纪元?是否有一些标志变量?谢谢!
我的代码在这里。
import tensorflow as tf
def read_my_file_format(filename_queue):
reader = tf.TextLineReader()
key, value = reader.read(filename_queue)
record_defaults = [['1'], ['1'], ['1']]
col1, col2, col3 = tf.decode_csv(value, record_defaults=record_defaults, field_delim='-')
# col1 = list(map(int, col1.split(',')))
# col2 = list(map(int, col2.split(',')))
return col1, col2, col3
def input_pipeline(filenames, batch_size, num_epochs=1):
filename_queue = tf.train.string_input_producer(
filenames, num_epochs=num_epochs, shuffle=True)
col1,col2,col3 = read_my_file_format(filename_queue)
min_after_dequeue = 10
capacity = min_after_dequeue + 3 * batch_size
col1_batch, col2_batch, col3_batch = tf.train.shuffle_batch(
[col1, col2, col3], batch_size=batch_size, capacity=capacity,
min_after_dequeue=min_after_dequeue, allow_smaller_final_batch=True)
return col1_batch, col2_batch, col3_batch
filenames=['1.txt']
batch_size = 3
num_epochs = 1
a1,a2,a3=input_pipeline(filenames, batch_size, num_epochs)
with tf.Session() as sess:
sess.run(tf.local_variables_initializer())
# start populating filename queue
coord = tf.train.Coordinator()
threads = tf.train.start_queue_runners(coord=coord)
try:
while not coord.should_stop():
a, b, c = sess.run([a1, a2, a3])
print(a, b, c)
except tf.errors.OutOfRangeError:
print('Done training, epoch reached')
finally:
coord.request_stop()
coord.join(threads)
我的数据就像
1,2-3,4-A
7,8-9,10-B
12,13-14,15-C
17,18-19,20-D
22,23-24,25-E
27,28-29,30-F
32,33-34,35-G
37,38-39,40-H
正如Nicolas观察到的那样,tf.train.string_input_producer()
API不能让您检测到何时到达时代的尽头。而是将所有纪元串联在一起,组成一个较长的批处理。因此,我们最近(在TensorFlow1.2中)添加了tf.contrib.data
API,该API使得可以表达更复杂的管道,包括您的用例。
以下代码段显示了如何使用编写程序tf.contrib.data
:
import tensorflow as tf
def input_pipeline(filenames, batch_size):
# Define a `tf.contrib.data.Dataset` for iterating over one epoch of the data.
dataset = (tf.contrib.data.TextLineDataset(filenames)
.map(lambda line: tf.decode_csv(
line, record_defaults=[['1'], ['1'], ['1']], field_delim='-'))
.shuffle(buffer_size=10) # Equivalent to min_after_dequeue=10.
.batch(batch_size))
# Return an *initializable* iterator over the dataset, which will allow us to
# re-initialize it at the beginning of each epoch.
return dataset.make_initializable_iterator()
filenames=['1.txt']
batch_size = 3
num_epochs = 10
iterator = input_pipeline(filenames, batch_size)
# `a1`, `a2`, and `a3` represent the next element to be retrieved from the iterator.
a1, a2, a3 = iterator.get_next()
with tf.Session() as sess:
for _ in range(num_epochs):
# Resets the iterator at the beginning of an epoch.
sess.run(iterator.initializer)
try:
while True:
a, b, c = sess.run([a1, a2, a3])
print(a, b, c)
except tf.errors.OutOfRangeError:
# This will be raised when you reach the end of an epoch (i.e. the
# iterator has no more elements).
pass
# Perform any end-of-epoch computation here.
print('Done training, epoch reached')
我有2个文件,一个ecore实现元模型和一个电子存储库。电子存储库以EMF格式与ecore实现元模型一起提供。我想浏览这个存储库的内容,我所知道的是我必须从实现元模型生成一个Eclipse插件,通过这个插件,我可以打开存储库并浏览它的内容。但我不知道如何生成插件并继续它。 ecore实现元模型是使用Eclipse Indigo SR2中的EMF版本2.7开发的,e-Repository是在相同的环
我想使用useEffect和for-loop生成多个JSX元素,但在本例中没有呈现任何内容。 警告代码:“React Hook useEffect缺少依赖项:”Render InfoCard“。请包含它或删除依赖项数组React-Hooks/EXEXTIVE-DEPS”
我想做一个这样的数组: 从HTML中取出,如下所示: 但我得到的数组是这样的:
本文向大家介绍如何生成一个随机数?相关面试题,主要包含被问及如何生成一个随机数?时的应答技巧和注意事项,需要的朋友参考一下
以下是我在pom中的相关配置.xml: 提前感谢您的帮助。
问题内容: 在我的一个项目中,我有一个管理多个客户(或客户,如果您愿意的话)的应用程序。对于他们每个人,我在数据库上都有一个专用的架构。但是,应用程序一次只处理一个客户端,即,用户必须从应用程序中的一个客户端切换到另一个客户端(在运行时,不重新启动应用程序),以便从该新客户端访问数据。 您将如何管理此类项目的连接以及持久层? 我想为此使用hibernate。在处理几个数据库/模式时,我必须特别注意