我正在编写一个供个人使用的相当基本的程序,但我真的想确保我使用好的做法,特别是如果我决定让它在以后变得更强大或者某些东西.
对于所有意图和目的,程序接受一些输入文件作为参数,使用fopen()从文件读取打开它们,对该信息进行处理,然后将输出保存为子文件夹中的几个不同文件.例如,如果程序在,~/program则保存输出文件~/program/csv/
我只是直接输出到文件,例如 output = fopen("./csv/output.csv", "w");,fprintf(output,"%f,%f", data1, data2);在循环中打印到它,然后关闭,fclose(output); 我只是觉得这是不好的做法.
我应该将它保存在临时目录中吗?它会被写入,然后在它完成时移动它?我应该使用更高级的文件i/o库吗?我只是完全过分思考这个吗?
我正在尝试在TensorFlow 0.9中实现一个基本的二进制Hopfield网络.不幸的是,我很难让激活功能正常工作.我希望得到非常简单,If net[i] < 0, output[i] = 0, else output[i] = 1但我尝试的一切似乎都删除了渐变,即在尝试实施训练操作时,我得到了"没有为任何变量提供渐变"的异常.
例如,我试图铸造tf.less()来float,我试图做的线沿线的东西
tf.maximum(tf.minimum(net, 0) + 1, 0)
Run Code Online (Sandbox Code Playgroud)
但我忘了小小数值.最后我做到了
tf.maximum(tf.floor(tf.minimum(net, 0) + 1), 0)
Run Code Online (Sandbox Code Playgroud)
但tf.floor不记录渐变.我也尝试用一个强制转换为int替换地板,然后一个强制转换为浮动但同样的交易.
关于我能做什么的任何建议?