如何创建一个链接xxx到/home/jake/doc/test/2000/something/?
假设它xxx是在/home/jake你当前所在的位置创建的/home/jake.当你这样做cd xxx,你直接去/home/jake/doc/test/2000/something/.
我正在尝试预取训练数据以隐藏I/O延迟.我想编写自定义Python代码,从磁盘加载数据并预处理数据(例如,通过添加上下文窗口).换句话说,一个线程进行数据预处理,另一个线程进行训练.这在TensorFlow中可行吗?
更新:我有一个基于@ mrry的例子的工作示例.
import numpy as np
import tensorflow as tf
import threading
BATCH_SIZE = 5
TRAINING_ITERS = 4100
feature_input = tf.placeholder(tf.float32, shape=[128])
label_input = tf.placeholder(tf.float32, shape=[128])
q = tf.FIFOQueue(200, [tf.float32, tf.float32], shapes=[[128], [128]])
enqueue_op = q.enqueue([label_input, feature_input])
label_batch, feature_batch = q.dequeue_many(BATCH_SIZE)
c = tf.reshape(feature_batch, [BATCH_SIZE, 128]) + tf.reshape(label_batch, [BATCH_SIZE, 128])
sess = tf.Session()
def load_and_enqueue(sess, enqueue_op, coord):
with open('dummy_data/features.bin') as feature_file, open('dummy_data/labels.bin') as label_file:
while not coord.should_stop():
feature_array = np.fromfile(feature_file, np.float32, 128)
if feature_array.shape[0] == 0:
print('reach end of …Run Code Online (Sandbox Code Playgroud) 我计划运行一个非常大的循环网络(例如2048x5),是否可以在张量流中的一个GPU上定义一个层?我应该如何实施该模型以实现最佳效率.据我所知,GPU间或GPU-GPU-GPU通信存在开销.
我想删除两列之间所有行的内容.我该怎么做呢?
例如,我想要这个:
abcdefg
hijklmn
opqrstu
Run Code Online (Sandbox Code Playgroud)
如果我删除第3列到第5列之间的文本,请成为此项:
abfg
himn
optu
Run Code Online (Sandbox Code Playgroud) 我创建了一个大的 .tfrecords 文件,但没有看到任何错误。但是,在训练期间,当 TfRecordReader 到达 .tfrecord 文件末尾附近的某个位置时,我看到了错误“在 XXXX 截断了记录”。如何快速检查 .tfrecord 文件是否真的损坏?如果是这样,我该如何快速修复文件(可以丢弃最后几个键值对)?
我试图使用tf.while_loop()来处理可变长度输入.但是,我只能用它来固定长度.将shape =(4)更改为shape =(None)后,代码不再有效.tf.dynamic_rnn似乎处理可变长度输入.我不确定tf.ynamic_rnn是如何用tf.while_loop()实现的.
import tensorflow as tf
import numpy as np
from tensorflow.python.ops import tensor_array_ops
from tensorflow.python.ops import array_ops
with tf.Graph().as_default(), tf.Session() as sess:
initial_m = tf.Variable(0.0, name='m')
inputs = tf.placeholder(dtype='float32', shape=(4))
#The code no longer works after I change shape=(4) to shape=(None)
#inputs = tf.placeholder(dtype='float32', shape=(None))
time_steps = tf.shape(inputs)[0]
initial_outputs = tf.TensorArray(dtype=tf.float32, size=time_steps)
initial_t = tf.constant(0, dtype='int32')
def should_continue(t, *args):
return t < time_steps
def iteration(t, m, outputs_):
cur = tf.gather(inputs, t)
m = m * 0.5 + cur …Run Code Online (Sandbox Code Playgroud) 似乎tensorflow不支持双向RNN的可变批量大小.在这个例子中,sequence_length它绑定到batch_size,这是一个Python整数:
_seq_len = tf.fill([batch_size], tf.constant(n_steps, dtype=tf.int64))
outputs, state1,state2 = rnn.bidirectional_rnn(rnn_fw_cell, rnn_bw_cell, input,
dtype="float",
sequence_length=_seq_len)
Run Code Online (Sandbox Code Playgroud)
如何使用不同的批量大小进行培训和测试?
我想在cuda中重复一个向量来形成一个矩阵,避免太多的memcopy。向量和矩阵都在 GPU 上分配。
例如:
我有一个向量:
a = [1 2 3 4]
Run Code Online (Sandbox Code Playgroud)
将其展开为矩阵:
b = [1 2 3 4;
1 2 3 4;
.......
1 2 3 4]
Run Code Online (Sandbox Code Playgroud)
我尝试过的是分配 b 的每个元素。但这涉及到大量的 GPU 内存到 GPU 内存的复制。
我知道这在 matlab 中很容易(使用 repmat),但是如何在 cuda 中有效地做到这一点?我没有在 cublas 中找到任何常规。