小编use*_*217的帖子

tensorflow中的条件图和访问张量大小的for循环

首先是广泛的问题:

  • 是否可以构建具有张量流的条件图?
  • 如果是,那么自动梯度计算和已实现的优化器是否可以使用它?
  • 我可以访问张量的形状并将其转换为整数,以便使用"if"条件和"for i in range()"循环吗?

我的实际用例是我想用可变张量长度进行一维卷积.为此,我首先需要一个if语句,如果长度大于1,则只执行卷积.然后我有一个for循环,通过卷积的张量.问题是这段代码:

for i in range(tf.shape(tensor)[0]): 
Run Code Online (Sandbox Code Playgroud)

不起作用,因为范围运算符需要一个整数.我能以某种方式将其转换为整数吗?

最后,我想用adagrad训练这个模型,无论是自动区分还是已经实现的优化器


编辑:

这是1D卷积,后来将成为我模型中两个层中的第一个.类型错误是每个触发一个版本的for循环的背后

import tensorflow as tf 
import numpy as np 

def convolve(s, Tl, Tr, b):

    if (tf.shape(s)[0] == 1):
        return s

    sum = 0

    # for i in range(tf.shape(s)[0] - 1): # error: TypeError: range() integer end argument expected, got Tensor
    # for i in range(s._shape._dims[0]._value - 1): # error: TypeError: unsupported operand type(s) for -: 'NoneType' and 'int'
    for i in range(s.get_shape().as_list()[0] - 1): # …
Run Code Online (Sandbox Code Playgroud)

python tensorflow

9
推荐指数
1
解决办法
4057
查看次数

如何对sqlalchemy使用RETURNING for query.update()

我想在sqlalchemy中指定特定更新的返回值.

底层更新语句(sqlalchemy.sql.expression.update)的文档说它接受一个"返回"参数,查询对象的文档说明query.update()接受一个字典"update_args",它将作为查询语句的参数.

因此我的代码如下所示:

session.query(
  ItemClass
).update(
  {ItemClass.value: value_a},
  synchronize_session='fetch',
  update_args={
    'returning': (ItemClass.id,)
  }
)
Run Code Online (Sandbox Code Playgroud)

但是,这似乎不起作用.它只返回常规整数.

我现在的问题是:我做错了什么,或者这对查询对象根本不可能,我需要手动构造语句或编写原始sql?

sqlalchemy

8
推荐指数
2
解决办法
2938
查看次数

pyspark createdataframe:字符串被解释为时间戳,架构混合了列

我有一个非常奇怪的错误,火花数据帧导致一个字符串被评估为时间戳.

这是我的设置代码:

from datetime import datetime
from pyspark.sql import Row
from pyspark.sql.types import StructType, StructField, StringType, TimestampType

new_schema = StructType([StructField("item_id", StringType(), True),
                         StructField("date", TimestampType(), True),
                         StructField("description", StringType(), True)
                        ])

df = sqlContext.createDataFrame([Row(description='description', date=datetime.utcnow(), item_id='id_string')], new_schema)
Run Code Online (Sandbox Code Playgroud)

这给了我以下错误:

()----> 1 df = sqlContext.createDataFrame([Row('='hey',date = datetime.utcnow(),item_id ='id_string')],new_schema)中的AttributeError Traceback(最近一次调用)

createDataFrame中的/home/florian/spark/python/pyspark/sql/context.pyc(self,data,schema,samplingRatio,verifySchema)307 Py4JJavaError:... 308""" - > 309返回self.sparkSession.createDataFrame( data,schema,samplingRatio,verifySchema)310 311 @since(1.3)

createDataFrame中的/home/florian/spark/python/pyspark/sql/session.pyc(self,data,schema,samplingRatio,verifySchema)522 rdd,schema = self._createFromRDD(data.map(prepare),schema,samplingRatio)523 else: - > 524 rdd,schema = self._createFromLocal(map(prepare,data),schema)525 jrdd = self._jvm.SerDeUtil.toJavaArray(rdd._to_java_object_rdd())526 jdf = self._jsparkSession.applySchemaToPythonRDD(jrdd .rdd(),schema.json())

/home/florian/spark/python/pyspark/sql/session.pyc in _createFromLocal(self,data,schema)397 398#将python对象转换为sql数据 - > 399 data …

apache-spark apache-spark-sql pyspark pyspark-sql

5
推荐指数
2
解决办法
3389
查看次数

redis-py是否会自动将evalsha用于已注册的脚本?

当我将Lua脚本注册到redis客户端时:

script = redis_client.register_script(lua_string)
Run Code Online (Sandbox Code Playgroud)

然后使用默认客户端运行脚本:

script(keys, args)
Run Code Online (Sandbox Code Playgroud)

这会自动在内部使用evalsha还是每次都将整个脚本发送到服务器?

redis redis-py

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