小编GPh*_*ilo的帖子

无法在仅 tensorflow CPU 安装上加载动态库“cudart64_101.dll”

我刚刚通过安装了最新版本的 Tensorflow pip install tensorflow,每当我运行程序时,我都会收到日志消息:

W tensorflow/stream_executor/platform/default/dso_loader.cc:55] 无法加载动态库“cudart64_101.dll”;dlerror: 找不到 cudart64_101.dll

这很糟糕吗?如何修复错误?

python python-3.x keras tensorflow tensorflow2.0

113
推荐指数
8
解决办法
25万
查看次数

是否有可能捕获lambda类型的异常?

虽然最好只抛出从std::exception类派生的类型的异常,但C++可以抛出任何东西.以下所有示例都是有效的C++:

throw "foo";  // throws an instance of const char*
throw 5;      // throws an instance of int

struct {} anon;
throw anon;   // throws an instance of not-named structure

throw []{};   // throws a lambda!
Run Code Online (Sandbox Code Playgroud)

最后一个例子很有趣,因为它可能允许传递一些代码在catch站点执行,而不必定义单独的类或函数.

但是有可能抓住一个lambda(或一个闭包)吗?catch ([]{} e)不起作用.

c++ lambda exception

55
推荐指数
3
解决办法
2753
查看次数

tf.data.Dataset.map()和tf.data.Dataset.apply()之间的区别

随着最近升级到1.4版,Tensorflow包含tf.data在库核心中.在描述一个"主要的新功能" 版本1.4发行说明tf.data.Dataset.apply(),这是一个"应用自定义转换功能的方法".这与现有的有tf.data.Dataset.map()什么不同?

python tensorflow tensorflow-datasets

18
推荐指数
2
解决办法
6021
查看次数

使用tf.estimator.Estimator框架转移学习

我正在尝试使用我自己的数据集和类进行在imagenet上预训练的Inception-resnet v2模型的传输学习.我的原始代码库是对tf.slim样本的修改,我找不到了,现在我正在尝试使用tf.estimator.*框架重写相同的代码.

但是,我正在运行从预训练检查点加载一些权重的问题,用其默认初始值设定项初始化剩余的层.

研究这个问题,我发现了这个GitHub问题这个问题,都提到了需要tf.train.init_from_checkpoint在我的问题中使用model_fn.我试过了,但由于两者都没有例子,我想我错了.

这是我的最小例子:

import sys
import os
os.environ['CUDA_VISIBLE_DEVICES'] = '-1'
import tensorflow as tf
import numpy as np

import inception_resnet_v2

NUM_CLASSES = 900
IMAGE_SIZE = 299

def input_fn(mode, num_classes, batch_size=1):
  # some code that loads images, reshapes them to 299x299x3 and batches them
  return tf.constant(np.zeros([batch_size, 299, 299, 3], np.float32)), tf.one_hot(tf.constant(np.zeros([batch_size], np.int32)), NUM_CLASSES)


def model_fn(images, labels, num_classes, mode):
  with tf.contrib.slim.arg_scope(inception_resnet_v2.inception_resnet_v2_arg_scope()):
    logits, end_points = …
Run Code Online (Sandbox Code Playgroud)

python tensorflow tensorflow-estimator

17
推荐指数
1
解决办法
4694
查看次数

如何将numpy数组存储为tfrecord?

我正在尝试从numpy数组创建tfrecord格式的数据集.我想存储2d和3d坐标.

2d坐标是float64类型的numpy数组(2,10)3d坐标是float64类型的numpy数组(3,10)

这是我的代码:

def _floats_feature(value):
    return tf.train.Feature(float_list=tf.train.FloatList(value=value))


train_filename = 'train.tfrecords'  # address to save the TFRecords file
writer = tf.python_io.TFRecordWriter(train_filename)


for c in range(0,1000):

    #get 2d and 3d coordinates and save in c2d and c3d

    feature = {'train/coord2d': _floats_feature(c2d),
                   'train/coord3d': _floats_feature(c3d)}
    sample = tf.train.Example(features=tf.train.Features(feature=feature))
    writer.write(sample.SerializeToString())

writer.close()
Run Code Online (Sandbox Code Playgroud)

当我运行这个我得到错误:

  feature = {'train/coord2d': _floats_feature(c2d),
  File "genData.py", line 19, in _floats_feature
return tf.train.Feature(float_list=tf.train.FloatList(value=value))
  File "C:\Users\User\AppData\Local\Programs\Python\Python36\lib\site-packages\google\protobuf\internal\python_message.py", line 510, in init
copy.extend(field_value)
  File "C:\Users\User\AppData\Local\Programs\Python\Python36\lib\site-packages\google\protobuf\internal\containers.py", line 275, in extend
new_values = [self._type_checker.CheckValue(elem) for elem in elem_seq_iter]
  File …
Run Code Online (Sandbox Code Playgroud)

python numpy tensorflow tfrecord

12
推荐指数
3
解决办法
5615
查看次数

如何懒洋洋地生成一个完成的项目序列并迭代它

我觉得这个问题肯定已被多次询问和解决,因为在我看来这是一个非常通用的场景,但我找不到任何指向解决方案的方法.

我正在尝试实现一个通用的可迭代Generator对象,该对象产生一个数字序列,直到满足某个终止条件,表明已经达到这样的条件以便停止迭代.

基本思想本质上是与Python的生成器类似,其中一个对象产生值,直到它不再产生为止,然后StopIteration引发异常以通知外部循环序列已完成.

根据我的理解,问题分为创建序列生成对象,然后在其上获取迭代器.

对于序列生成对象,我想我会定义一个基Generator类,然后扩展它以提供特定的行为(例如,从一组范围中获取值,或从固定值列表中获取等).所有GeneraorS中的每个呼叫产生一个新的值operator()或者抛出一个ValuesFinishedException如果发电机跑到序列的末端.我这样实现了这个(我以单范围子类为例,但我需要能够建模更多类型的序列):

struct ValuesFinishedException : public std::exception { };

template <typename T>
class Generator
{
public:
    Generator() { };
    ~Generator() { };
    virtual T operator()() = 0; // return the new number or raise a ValuesFinishedException
};

template <typename T>
class RangeGenerator : public Generator<T>
{
private:
    T m_start;
    T m_stop;
    T m_step;

    T m_next_val;

public:
    RangeGenerator(T start, T stop, T step) :
        m_start(start),
        m_stop(stop), …
Run Code Online (Sandbox Code Playgroud)

c++ iterator

10
推荐指数
2
解决办法
778
查看次数

使用tf.device('/ cpu:0')时Tensorflow分配GPU内存

系统信息:1.1.0,GPU,Windows,Python 3.5,代码在ipython控制台中运行.

我正在尝试运行两个不同的Tensorflow会话,一个在GPU上(执行一些批处理工作),一个在CPU上,我用于快速测试,而另一个工作.

问题是当我产生第二个会话时指定with tf.device('/cpu:0')会话尝试分配GPU内存并崩溃我的其他会话.

我的代码:

import os
os.environ["CUDA_VISIBLE_DEVICES"] = ""
import time

import tensorflow as tf

with tf.device('/cpu:0'):
  with tf.Session() as sess:
    # Here 6 GBs of GPU RAM are allocated.
    time.sleep(5)
Run Code Online (Sandbox Code Playgroud)

如何强制Tensorflow忽略GPU?

更新:

正如@Nicolas在评论中所建议的那样,我看了看这个答案然后跑了

import os
os.environ["CUDA_VISIBLE_DEVICES"] = ""
import tensorflow as tf

from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())
Run Code Online (Sandbox Code Playgroud)

打印:

[name: "/cpu:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation: 2215045474989189346
, name: "/gpu:0"
device_type: "GPU"
memory_limit: 6787871540
locality {
  bus_id: 1
}
incarnation: …
Run Code Online (Sandbox Code Playgroud)

python tensorflow

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

是否可以在git diff中配置临时文件夹?

git difftool在存储库中调用时,git会将本地存储库中的已修改文件与远程中的匹配项进行比较.要做到这一点,它为远程的临时文件,设置变量LOCALREMOTE取工具在Git的配置的差异列表中指定和调用.

默认情况下,将在中创建临时文件/tmp/<hash>_filename.是否可以更改此默认位置?

为什么要这么做?

长话短说,我通过windows子系统使用git for linux,我想使用windows工具做差异和合并.问题是,/tmp无法从Windows端访问,因此我需要将git创建临时文件的默认位置移动到Windows可访问的位置.

我尝试了什么:

到目前为止,我所能找到的只是一个建议,sudo mount -B /tmp /mnt/c/tmp但这似乎不起作用(/tmp仍然指向与以前相同的目录...)

git git-difftool

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

JPQL:字段路径无法解析为集合类型

我正在尝试根据用户可以选择的可能日期列表对日期进行搜索。使用日历,我要求用户输入日期,然后我要获取所有可能的数据包,这些数据包的“ data_possibile”列表中都包含该日期。

这是我正在使用的查询:

@NamedQuery(name="pacchettoPreconfigurato.findVendibileByData", query="SELECT p FROM PacchettoPreconfigurato p WHERE p.in_vendita=TRUE AND (:data) IN (p.date_possibili)")
Run Code Online (Sandbox Code Playgroud)

现在,当我尝试在服务器的日志中部署应用程序时,我得到:

Exception Description: Problem compiling [SELECT p FROM PacchettoPreconfigurato p WHERE p.in_vendita=TRUE AND (:data) IN (p.date_possibili)]. [81, 97] The state field path 'p.date_possibili' cannot be resolved to a collection type.
Run Code Online (Sandbox Code Playgroud)

这是p.date_possibili的定义方式:

@OneToMany(orphanRemoval=true)
@JoinColumn(name="id_pp")
private List<DataPossibilePP> date_possibili;
Run Code Online (Sandbox Code Playgroud)

其中DataPossibilePP为:

@Entity
@IdClass(DataPossibilePPPK.class)
public class DataPossibilePP implements Serializable {     
    @Id
    private Integer id_pp;   
    @Id
    private Date data;
    private static final long serialVersionUID = 1L;
    /*standard getters and setters*/
} …
Run Code Online (Sandbox Code Playgroud)

jpa jpql

5
推荐指数
1
解决办法
2752
查看次数

Python itertools 产品,但有条件?

我有一个函数 fun 需要几个参数 p0,p1,.. 对于每个参数,我给出了一个可能值的列表:

p0_list = ['a','b','c']
p1_list = [5,100]
Run Code Online (Sandbox Code Playgroud)

我现在可以为 p0,p1 的每个组合调用我的函数

for i in itertools.product(*[p0,p1]):
    print fun(i)
Run Code Online (Sandbox Code Playgroud)

现在问题来了:如果我已经知道参数 p1 只对 fun 的结果有影响,如果 p0 是 'a' 或 'c' 怎么办?在这种情况下,我需要我的参数组合列表看起来像:

[('a', 5), ('a',100), ('b', 5), ('c',5), ('c', 100)]
Run Code Online (Sandbox Code Playgroud)

所以 ('b', 100) 只是被省略了,因为这将是对乐趣的不必要评估。

我的最终解决方案

param_lists = [['p0', ['a','b','c']],['p1', [5,100]]]
l = itertools.product(*[x[1] for x in param_lists])
l = [x for x in l if not x[0] == 'b' or x[1]==5]
Run Code Online (Sandbox Code Playgroud)

我将这种方法用于 5 个参数和各种条件,并且效果很好。它也很容易阅读。这段代码的灵感来自 Corley Brigmans 和 nmcleans 的回答。

python product python-itertools python-2.7

5
推荐指数
1
解决办法
3353
查看次数