有没有办法在Tensorflow中提供和获取相同的变量?如果没有,为什么不允许这样做?
我收到这个错误:
StatusNotOK: Invalid argument: Reshape:0 is both fed and fetched.
Run Code Online (Sandbox Code Playgroud) 我有一个离子项目,我想用 Cypress 进行 e2e 测试并用 Jasmine 进行单元测试。在我将 cypress 包添加到 package.json 并开始编写第一个 e2e-tests 后,VS-Code 在我的单元测试的 spec.ts 文件中显示了一些错误。问题是,VS-Code 假设我使用 Mocha 和 Chai 进行测试。
我可以毫无错误地运行测试。
这是我的 tsconfig.json 文件:
{
"compileOnSave": false,
"compilerOptions": {
"baseUrl": "./",
"outDir": "./dist/out-tsc",
"sourceMap": true,
"dec
laration": false,
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es5",
"typeRoots": [
"node_modules/@types"
],
"lib": [
"es2017",
"dom"
]
}
}
Run Code Online (Sandbox Code Playgroud)
我的 tsconfig.spec.json 文件:
{
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "../out-tsc/spec",
"module": "commonjs",
"types": [
"jasmine",
"node"
]
},
"files": [
"test.ts",
"polyfills.ts", …Run Code Online (Sandbox Code Playgroud) 我正在寻找一种好的(有效的,最好是简单的)方法来从可变长度/形状的序列创建填充张量.到目前为止,我能想象的最好的方法是这样一个天真的方法:
import torch
seq = [1,2,3] # seq of variable length
max_len = 5 # maximum length of seq
t = torch.zeros(5) # padding value
for i, e in enumerate(seq):
t[i] = e
print(t)
Run Code Online (Sandbox Code Playgroud)
输出:
tensor([ 1., 2., 3., 0., 0.])
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法呢?
我还没有找到一些东西,但我想一定有更好的东西.
我正在考虑一些函数,用所需的填充将序列张量扩展到所需的形状.或者直接从序列中创建填充张量的东西.但当然也欢迎其他方法.
如果没有,是否有项目在 Flask-Login 中添加了此功能?否则,从 Flask-Login 迁移到 Flask-User 似乎有点令人生畏。否则,是否有从 Flask-Login 迁移到 Flask-User 的任何方向?
嗨,我正在训练 PyTorch 模型并出现此错误:
----> 5 for i, data in enumerate(trainloader, 0):
TypeError: 'torch.Size' object cannot be interpreted as an integer
不确定这个错误是什么意思。
你可以在这里找到我的代码:
model.train()
for epoch in range(10):
running_loss = 0
for i, data in enumerate(trainloader, 0):
inputs, labels = data
optimizer.zero_grad()
outputs = model(inputs)
loss = criterion(outputs, labels)
loss.backward()
optimizer.step()
if i % 2000 == 0:
print (loss.item())
running_loss += loss.item()
if i % 1000 == 0:
print ('[%d, %5d] loss: %.3f' % (epoch, i, running_loss/ 1000))
running_loss = 0 …Run Code Online (Sandbox Code Playgroud) 例如,我有一个张量:
tensor = torch.rand(12, 512, 768)
Run Code Online (Sandbox Code Playgroud)
我得到了一个索引列表,说它是:
[0,2,3,400,5,32,7,8,321,107,100,511]
Run Code Online (Sandbox Code Playgroud)
我希望从给定索引列表的维度 2 上的 512 个元素中选择 1 个元素。然后张量的大小将变为(12, 1, 768)。
有办法做到吗?
import tensorflow as tf
sess = tf.Session()
def add_to_batch(image):
print('Adding to batch')
image_batch = tf.train.shuffle_batch([image],batch_size=5,capacity=11,min_after_dequeue=1,num_threads=1)
# Add to summary
tf.image_summary('images',image_batch)
return image_batch
def get_batch():
# Create filename queue of images to read
filenames = [('/media/jessica/Jessica/TensorFlow/Practice/unlabeled_data_%d.png' % i) for i in range(11)]
filename_queue = tf.train.string_input_producer(filenames)
reader = tf.WholeFileReader()
key, value = reader.read(filename_queue)
# Read and process image
my_image = tf.image.decode_png(value)
my_image_float = tf.cast(my_image,tf.float32)
image_mean = tf.reduce_mean(my_image_float)
my_noise = tf.random_normal([96,96,3],mean=image_mean)
my_image_noisy = my_image_float + my_noise
print('Reading images')
return add_to_batch(my_image_noisy)
def main (): …Run Code Online (Sandbox Code Playgroud) 介绍
我正在使用Tensorflow教程"Deep MNIST for experts"的修改版本,使用Python API进行使用卷积网络的医学图像分类项目.
我想通过对训练集的图像进行随机修改来人为地增加训练集的大小.
问题
当我运行这条线时:
flipped_images = tf.image.random_flip_left_right(images)
Run Code Online (Sandbox Code Playgroud)
我得到了以下错误:
AttributeError:'numpy.ndarray'对象没有属性'get_shape'
我的Tensor"图像"是(shape=[batch, im_size, im_size, channels])"批量"ndarray的ndarray (shape=[im_size, im_size, channels]).
只是为了检查我的输入数据是否以正确的形状和类型打包,我试图在(未修改的)教程"Tensorflow Mechanics 101"中应用这个简单的函数,我得到了同样的错误.
最后,我仍然在尝试使用以下函数时遇到同样的错误:
tf.image.random_flip_up_down() tf.image.random_brightness()tf.image.random_contrast()问题
由于输入数据通常在Tensorflow中作为ndarrays传输,我想知道:
tf.image.random_flip_left_right我的训练集?我尝试使用以下命令安装 python 模块 (treetager-python):
python3 setup.py install
Run Code Online (Sandbox Code Playgroud)
尝试此操作时,我收到错误消息:
running install
running bdist_egg
running egg_info
creating treetagger.egg-info
error: could not create 'treetagger.egg-info': Permission denied
Run Code Online (Sandbox Code Playgroud)
我阅读了有关使用 flag 的信息--user,但这根本不起作用:
python3 setup.py install --user
running install
error: can't combine user with prefix, exec_prefix/home, or install_(plat)base
Run Code Online (Sandbox Code Playgroud)
我知道使用sudo可能会解决这个问题,但我不喜欢使用 root 权限执行 3rd 方文件/代码。
那么有没有办法在不使用' sudo'的情况下解决这个问题?
我试过了Mac OS,如果需要任何其他信息,请告诉我。
提前致谢!
解决方案:
因此,正如答案所暗示的那样,问题是源文件夹中的权限问题。当我下载此文件时,文件所有者被设置为“root”,使用更改所有者chown解决了问题。感谢您的快速帮助!
我目前正在使用 Tensorflow 数据集 api 对指定路径上的图像执行一些增强。文件名本身包含说明是否扩充文件的信息。所以我想要做的是从数据集中读取文件,对于每个文件,在文件名中执行查找,如果找到特定的子字符串,则设置一个 bool 标志并将子字符串替换为“”。
我得到的错误是:
AttributeError: 'Tensor' 对象没有属性 'find'
我无法使用 dtype 字符串条目对张量执行“查找”,因为 find 不是张量的一部分,所以我试图弄清楚如何执行上述操作。我在下面分享了一些代码,我认为这些代码展示了我正在尝试做的事情。性能很重要,因此如果有人发现我将通过 Dataset API 错误地执行此操作,我更愿意以正确的方式执行此操作。
def preproc_img(filenames):
def parse_fn(filename):
augment_inst = False
if cfg.SPLIT_INTO_INST:
#*****************************************************
#*** THIS IS WHERE THE LOGIC IS CURRENTLY BREAKING ***
#*****************************************************
if filename.find('_data_augmentation') != -1:
augment_inst = True
filename = filename.replace('_data_augmentation', '')
image_string = tf.read_file(filename)
img = tf.image.decode_image(image_string, channels=3)
return dict(zip([filename], [img]))
dataset = tf.data.Dataset.from_tensor_slices(filenames)
dataset = dataset.map(parse_fn)
iterator = dataset.make_one_shot_iterator()
return iterator.get_next()
def perform_train():
if __name__ == '__main__':
filenames …Run Code Online (Sandbox Code Playgroud) python ×4
tensorflow ×4
pytorch ×3
cypress ×1
flask ×1
flask-login ×1
jasmine ×1
mocha.js ×1
python-2.7 ×1
python-3.x ×1
roles ×1
tensor ×1
torch ×1
treetagger ×1
unit-testing ×1