注意:我浏览了大多数其他帖子,它们都使用旧版本的 NDK,这对于我的用例来说并不理想。
我想为 Android 构建 OpenSSH 8.2。这是我用来构建 zlib、OpenSSL 以及最后的 OpenSSH 的脚本。不幸的是,这似乎在决赛中失败了make。
#!/bin/bash
# set ANDROID_NDK_HOME
export ANDROID_NDK_HOME="/opt/android-ndk-r21b"
# add the toolchain to our path
export PATH="${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin:$PATH"
# nb. for x86 set CHOST="i686-linux-android"
export CHOST="arm-linux-androideabi"
export CHOST2="armv7a-linux-androideabi29"
export CC="${CHOST2}-clang"
export CXX="${CHOST2}-clang++"
export RANLIB="${CHOST}-ranlib"
export LD="${CHOST}-ld"
export AR="${CHOST}-ar"
export ARFLAGS="cr"
export CHOST="${CHOST}"
# Build zlib
wget http://zlib.net/zlib-1.2.11.tar.gz
tar zxf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure
make
cd ..
# Build OpenSSL
wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz
tar zxf openssl-1.1.1g.tar.gz
cd openssl-1.1.1g
./Configure android-arm -D__ANDROID_API__=29
make …Run Code Online (Sandbox Code Playgroud) 我正在尝试取消堆叠Tensor,因为我需要一个序列作为RNN的输入.我使用可变序列长度,这阻止我正确使用tf.unstack.
def MapToSequences(x):
# x.get_shape().as_list() = [64, 1, None, 512]
x = tf.squeeze(x)
# tf.shape(x) = [None, None, None], at runtime would be [64, seqlen, 512]
x = tf.transpose(x, perm=[1, 0, 2])
# [seqlen, 64, 512]
# Here I'd like to unstack with seqlen as num
x = tf.unstack(x) # Cannot infer num from shape (?, ?, ?)
return x
Run Code Online (Sandbox Code Playgroud)
我尝试使用tf.shape(x)推断seqlen并将其用作num,但我得到了Expected int for argument 'num' not <tf.Tensor 'strided_slice:0' shape=() dtype=int32>