tensorflow中simnets的实现

simnets的Python项目详细描述


#tensorflow中的simnets tf
simnets实现

二进制安装
二进制安装需要CUDA工具包安装>;=7.5。<;br/>;
从github release选项卡下载.whl文件,然后键入:
````
python-m pip install<;whl file>;
````
应自动安装所有要求。

C++(11)支持的工作C++编译器(GCC & Gt;=4.7)
2。已安装CUDA工具包(用于NVCC)
3。cmake>;=3.0(<;code>;apt install cmake<;code>;)
4。为要使用的python解释器安装的tensorflow

<;b>;重要信息:<;/b>;以下命令应无错误运行:
````
python-c"将tensorflow导入为tf"
```
若要生成项目,请键入以下命令:<;br/>;
python 2.7:<;br/>;
```
git克隆——递归https://github.com/huji deep/simnets tf.git
cd simnets tf
mkdir build
cd build
cmake.-dcmake_build_type=release-dsimnets_python_version=2.7-dcmake_install_prefix=install
make-j simnet_ops
````

python 3.5:<;br/>;
`````
git clone——递归https://github.com/huji deep/simnets tf.git
cd simnets tf
mkdir build
cd build
cmake…-dcmake_build_type=release-dsimnets_python_version=3.5-dcmake_install_prefix=install
make-j simnet_ops
````
要测试现在可以键入的代码,请键入:
``````
make test_simnet_ops
``
这应该运行大约两分钟,并且返回时没有任何错误。<;br/>;
您可以创建一个.whl文件:
```
make create-wheel
```

由于运行(同样,请记住使用正确的解释器):
```
python-c'import simnets'
````

``keras
``python
import simnets.keras sk
import keras
from keras.datasets import mnist
from keras.models import model
from keras.layers从keras导入后端导入input、flatten、averagepooling2d、lambda
作为k
导入numpy作为np

28,28


数据,在列车和测试集之间的洗牌和拆分
(x列车,y列车),(x检验,y检验)=mnist.load数据




x列车=x列车.整形(x列车.形状[0],1,img列,img列)
x检验=x列车.整形(x列车.形状[0],1,img列,img列)
x检验=x列车.整形(x列车.形状[0],1,img列,img列)

x检验=x列车.整形(x列车.整形(x列车.形状[0],1,x列车.形状[0],1,imimg_cols)
输入样本形状=(1,输入样本行,输入样本列)



x U train=x U train.astype('float32')
x U test=x U test.astype('float32')
x U train=x U train/255.0-0.5
x U test=x U test/255.0-0.5

打印(x U train.shape[0],'train samples')
打印(x U test.shape[0],'测试样本样本[0],'测试样本样本打印(x U train.shape[0],'测试样本打印(x U train)

将类向量转换为二进制类矩阵
y_train=keras.utils.to_categorical(y_train,num_classes)
y_test=keras.utils.to_categorical(y_test,num_classes)


def sum_pooling_layer(x,pool_size):
x=averagepooling2d(pool_size=pool_size,padding=valid')(x)
x=lambda(lambda x:x*池大小[0]*池大小[1])(x)
返回x



a=输入(shape=(1,img\u rows,img\u cols))
b=sk.相似性(sim\u channels,
ksize=[2,2],跨步数=[2,2],相似性函数='l2',
规范化术语=真,填充=[2,2],超出界限值=np.nan,忽略输入值=true)(a)
,而b.shape[-2:]!=(1,1):
mex_channels*=2
b=sk.mex(mex_channels,
blocks=[int(b.shape[-3]),1,1],strips=[int(b.shape[-3]),1,1],
softmax_mode=true,normalize_offset=true,
使用非共享的_regions=true,非共享的_offset_region=[2])(b)
b=sum_pooling_layer(b,pool_size=(2,2))

b=sk.mex(num_classes,
blocks=[mex_channels,1,1],strips=[mex_channels,1],
softmax_mode=true,normalize_offset=tr我们,
使用未共享的区域=真的,共享的偏移区域=[1])(b)
b=扁平化(b)
model=model(输入=[a],输出=[b])


prinprint(model.summary())

model=model(输入=[a],输出=[b])


return k.categ分类的交叉熵(y假设,y假设,y假设,y假设,y假设,true)



>model.compile(损失=软最大损失,(model.summa())



优化器=k优化器。优化器。NADAM(LR=1E-2,epsilon=1E-6)NADAM(LR=1E-2,epsilon=1E-6),
metrics=['accuracity']


SK.执行无监督初始(模型,kmeans,层=none,数据=x U列,批量=100)



model.fit(x U列,y U列,y U列,
batU列,批量=批量大小,
epoch=epoch,
verbose=1,
verbose=1,
验证数据=(验证数据)=(验证数据=x_检验
score=model.evaluate(x_test,y_test,verbose=0)
print('test loss:',score[0])
print('test acacacacacacacacacacacacacacacacacacacacacacacacacacret,score[1])

```````

导入tensorfloas tf导入tensorflow作为tf从tensorflow导入tensorflow.examples.tutorials.tutorials.mnististist从simnets导入输入数据simnets导入相似性导入相似性导入相似性导入相似性导入相似性导入相似性导入数据

来自simnets.unsupervised impor无监督相似性理论
将matplotlib.pyplotlib.pyplotlib.pyplot导入plt


>mnist=inpu数据.读取数据集('mnist数据,one-hot=true)
sess=tf.interactivesession()



x,[-1,1,1,28,28,28]x=tf.float32,shape=[none,shape=[none,shape=[br/>x=tf.float32,shape=[none,784,shape=[none,784,shape=[none,784,784,shape=[10])

形状=[10,128,28,28]



templates=tf.variable(tf.truncut_-normal(shape,stddev=0.1),tf.truncut_-normal(shape,stddev=0.1))
weights=tf.abs(weights_-var)

sim=相似度(xr,templates,weights,相似度函数均为l2,ksize=[28,28],大踏步=[28,28,28,28],padding=[0,0,0])
y=br/>y=tf y=tf.resforme(sim,[-1,10])

kmo_init,kmo=similarity_un监督_init('kmeans,sim,templates,wei权值,sim,sim,templates,templates,wei权值)



cross_熵=tf.reduce平均值(
tf.nn.softmax_cross_cross_cross_cross_熵(labels=y,logits=y))



>train_step=tf.train.gradientDescentOptimizer(0.5)、最小化(cross(cross_熵)





对于范围(300)内的IDX,如果IDX==0:
batch=mnist.train.train.train.train.下一个批次(100)
def normalize(img):
返回(img-img.min())/(img.max()-img.min())



templates\u np=tf.get默认的会话().run(templates)run(templates)
plt.figu图(1)
i在范围(10):
plt.subblot(4,3,i+1)
plt.imshow(normalize(templates_np[i,0,…])
plt.show()

>idx在范围(1000):
batch=mnist.train.batch=mnist.train.train.train.train.train.下一批(100)
/>训练步骤。运行(feed dict={x:batcH[0],Y第[1]批处理[1]>
if(idx+1%1)%100==0:
print(idx+1,"/",1000)



正确预测=tf.相等(tf.argmax(y,1,y,1),tf.argmax(y,1))
precisc=tf.降低平均值(tf.cast(正确预测,tf.float32))
print('acacaccicici度:',acci精确度.eval(feed dict={x:mnistist.test.test.test.x,y:mnist.test.test.images;y,y:mnist.labels})

```

BR/>

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
使用节点的基于Java的web应用程序。js?   如何使用java在正则表达式中转义星号   java 404未找到:访问部署在Tomcat上的servlet时出错   java如何获取库的所有依赖项?   java如何从其他类控制器使用FXML类的节点?   java如何修复Grails2.3.8中编写的应用程序中的表达式注入?   java如何在对象中创建toString方法?   泛型Java如何将类型类<A<B>>传递给方法   postgresql在pgadmin中运行良好,但在java代码中不起作用   java将字符串更改为Int以便更好地排序合法吗?   关于可见性的多线程Java并发问题   java JHipster错误:无法找到或加载主类org。阿帕奇。专家包装纸。MavenWrapperMain   java Kafka配置最大字节数仍受500条消息的限制   void方法之后的Java变量更新   java Spring引导Jpa映射   java如何优化DynamoDb的索引   JAVA伊奥。使用Jsoup时FileNotFoundException